Dojo の AMD ローダーのドキュメントでは、トレース API について言及しています。これがどのように実装されているかの例はありますか?
アプリのさまざまな依存関係が読み込まれている間に「Loaded X of X」スタイルのメッセージを表示するためにそれを活用したいと思いますが、その方法や、コードのフローにトレースを含める場所がわかりません。
編集:トレース API は Dojo のソース バージョンでのみ使用できるようです。私が望むものを達成する別の方法はありますか?
Dojo の AMD ローダーのドキュメントでは、トレース API について言及しています。これがどのように実装されているかの例はありますか?
アプリのさまざまな依存関係が読み込まれている間に「Loaded X of X」スタイルのメッセージを表示するためにそれを活用したいと思いますが、その方法や、コードのフローにトレースを含める場所がわかりません。
編集:トレース API は Dojo のソース バージョンでのみ使用できるようです。私が望むものを達成する別の方法はありますか?
このコードは機能しているように見えますが、脆すぎます。これは、1) 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...
} );
} );
} );