Javascript 使用Dojo';s require.trace以跟踪总体加载进度
本文提到了一个跟踪API。有没有关于如何实现这一点的例子 我想利用它在加载我的应用程序的各种依赖项时显示一条“已加载的X/X”样式的消息,但我不确定如何这样做,也不确定在我的代码流中包括跟踪的位置Javascript 使用Dojo';s require.trace以跟踪总体加载进度,javascript,dojo,amd,Javascript,Dojo,Amd,本文提到了一个跟踪API。有没有关于如何实现这一点的例子 我想利用它在加载我的应用程序的各种依赖项时显示一条“已加载的X/X”样式的消息,但我不确定如何这样做,也不确定在我的代码流中包括跟踪的位置 编辑:跟踪API似乎只在Dojo的源版本上可用。是否有其他方法可以实现我的目标?此代码似乎可以工作,但太脆弱了。它依赖于1)require在Dojo的源版本中公开其内部工作,以及2)require的属性,这些属性将来可能会更改。当然还有更好的办法 require( [], function() {
编辑:跟踪API似乎只在Dojo的源版本上可用。是否有其他方法可以实现我的目标?此代码似乎可以工作,但太脆弱了。它依赖于1)require在Dojo的源版本中公开其内部工作,以及2)require的属性,这些属性将来可能会更改。当然还有更好的办法
require( [], function()
{
// output amd progress
var loadWatchHandle = setInterval( function()
{
var all = Object.keys( require.modules ).length,
waiting = 0;
for( dep in require.waiting )
{
if( require.waiting[ dep ] !== 1 )
{
waiting++;
}
}
// write progress
console.log( ( all - waiting ) + '/' + all + ' files (' + parseInt( ( all - waiting ) / all * 100 ) + '%)' );
}, 50 );
require( [ 'dojo/parser',
'dojo/ready',
'dijit/layout/BorderContainer',
'squad_builder/TabContainer',
'dijit/layout/ContentPane',
'dojo/domReady!' ],
function( parser, ready )
{
parser.parse();
ready( function() // uses ready not domReady because we want initial djits to be parsed
{
// stop tracing
clearInterval( loadWatchHandle );
// bootstrap here...
} );
} );
} );