Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/batch-file/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用Dojo';s require.trace以跟踪总体加载进度_Javascript_Dojo_Amd - Fatal编程技术网

Javascript 使用Dojo';s require.trace以跟踪总体加载进度

Javascript 使用Dojo';s require.trace以跟踪总体加载进度,javascript,dojo,amd,Javascript,Dojo,Amd,本文提到了一个跟踪API。有没有关于如何实现这一点的例子 我想利用它在加载我的应用程序的各种依赖项时显示一条“已加载的X/X”样式的消息,但我不确定如何这样做,也不确定在我的代码流中包括跟踪的位置 编辑:跟踪API似乎只在Dojo的源版本上可用。是否有其他方法可以实现我的目标?此代码似乎可以工作,但太脆弱了。它依赖于1)require在Dojo的源版本中公开其内部工作,以及2)require的属性,这些属性将来可能会更改。当然还有更好的办法 require( [], function() {

本文提到了一个跟踪API。有没有关于如何实现这一点的例子

我想利用它在加载我的应用程序的各种依赖项时显示一条“已加载的X/X”样式的消息,但我不确定如何这样做,也不确定在我的代码流中包括跟踪的位置


编辑:跟踪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...

        } );
    } );
} );