3
docs for Dojo's AMD loader提到跟蹤API。有沒有例子說明這是如何實現的?使用Dojo的require.trace跟蹤整體加載進度
我想利用它來顯示一個「Loaded X of X」風格的消息,而我的應用程序的各種依賴被加載,但我不知道如何這樣做或在我的代碼流中包含跟蹤。
編輯:似乎跟蹤API只在源版本的Dojo上可用。有什麼不同的方式來實現我想要的?
docs for Dojo's AMD loader提到跟蹤API。有沒有例子說明這是如何實現的?使用Dojo的require.trace跟蹤整體加載進度
我想利用它來顯示一個「Loaded X of X」風格的消息,而我的應用程序的各種依賴被加載,但我不知道如何這樣做或在我的代碼流中包含跟蹤。
編輯:似乎跟蹤API只在源版本的Dojo上可用。有什麼不同的方式來實現我想要的?
此代碼似乎工作,但它太脆弱了。它依賴於1)要求在源版本的Dojo中暴露它的內部工作,以及2)將來可能會改變的需求屬性。當然有更好的辦法!
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...
});
});
});