Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ajax/6.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 如果加载超时,LABJS中是否有回调函数的规定?_Javascript_Ajax_Labjs_Asynchronous Loader - Fatal编程技术网

Javascript 如果加载超时,LABJS中是否有回调函数的规定?

Javascript 如果加载超时,LABJS中是否有回调函数的规定?,javascript,ajax,labjs,asynchronous-loader,Javascript,Ajax,Labjs,Asynchronous Loader,我通过LabJS异步加载脚本,并且有一系列依赖脚本。现在,如果链中的一个脚本中断(即无法下载,或连接超时),我相信依赖链下的其余脚本将不会执行。在这种情况下,是否可以提供自定义回调函数,以便在特定脚本无法加载时采取适当措施? 如果LabJS无法做到这一点,那么其他异步脚本加载程序是否也能做到这一点呢?根据坐在离我20英尺远的getify的说法,通常没有办法处理这样的超时,主要是因为超时不是一个明确的“积极”事件。(对于库在这种情况下如何处理依赖关系链的具体案例,我将让作者自己澄清。) 你能做的就

我通过LabJS异步加载脚本,并且有一系列依赖脚本。现在,如果链中的一个脚本中断(即无法下载,或连接超时),我相信依赖链下的其余脚本将不会执行。在这种情况下,是否可以提供自定义回调函数,以便在特定脚本无法加载时采取适当措施?
如果LabJS无法做到这一点,那么其他异步脚本加载程序是否也能做到这一点呢?

根据坐在离我20英尺远的getify的说法,通常没有办法处理这样的超时,主要是因为超时不是一个明确的“积极”事件。(对于库在这种情况下如何处理依赖关系链的具体案例,我将让作者自己澄清。)


你能做的就是让你自己的看门狗等你觉得合适的时间。只需运行一个时间间隔计时器,检查是否有迹象表明您的脚本已进入页面,如果经过多次迭代后您看不到它,您可以选择另一个(不同的脚本主机,无论什么)。

据getify说,他恰好坐在离我20英尺远的地方,一般来说,没有办法处理这样的超时,主要是因为超时不是一个明确的“积极”事件。(对于库在这种情况下如何处理依赖关系链的具体案例,我将让作者自己澄清。)


你能做的就是让你自己的看门狗等你觉得合适的时间。只需运行一个间隔计时器,检查是否有迹象表明您的脚本已进入页面,如果经过多次迭代后您未能看到它,则可以使用其他方法(不同的脚本主机,无论什么)。

下面的示例显示了如何在LABjs代码中包装setTimeout()超时。。。在本例中,它提供了一种回退机制,尝试从CDN加载jquery,然后如果超时时间过去,它将中止该操作,并尝试从本地文件加载jquery


下面是一个示例,演示如何围绕LABjs代码包装setTimeout()超时。。。在本例中,它提供了一种回退机制,尝试从CDN加载jquery,然后如果超时时间过去,它将中止该操作,并尝试从本地文件加载jquery


这个怎么样?我没有测试过这个:

$LAB.script('jquery-from-cdn.js').wait(function(){

    if(!window.jQuery) {
        $LAB.script('local-jquery.js').wait(load_scripts);
    } else {
        load_scripts();
    }

});

function load_scripts() {
    $LAB.script('other-js.js');
}

这个怎么样?我没有测试过这个:

$LAB.script('jquery-from-cdn.js').wait(function(){

    if(!window.jQuery) {
        $LAB.script('local-jquery.js').wait(load_scripts);
    } else {
        load_scripts();
    }

});

function load_scripts() {
    $LAB.script('other-js.js');
}

非常感谢。直接从你那里得到答案真是太棒了:D@Kyle您能举个例子说明如何将其集成到现有的LABjs加载链中吗?谢谢@你不会真的把它整合到现有的连锁店里。。。这种方法基本上将构成自己的独立链,和/或取代现有链。谢谢。直接从你那里得到答案真是太棒了:D@Kyle您能举个例子说明如何将其集成到现有的LABjs加载链中吗?谢谢@你不会真的把它整合到现有的连锁店里。。。这种方法基本上会构成自己的独立链,和/或替换现有链。嗯,我还没有用超时测试过这一点,但在404中,FF/Chrome甚至不会触发等待回调。另一个问题是,您将失去并行下载js文件的能力,这是LABjs的一个关键特性。Jquery必须在下载任何其他脚本之前下载并解析。嗯,我还没有用超时测试过它,但在404中,FF/Chrome甚至没有触发等待回调。另一个问题是,您将失去并行下载js文件的能力,这是LABjs的一个关键特性。在下载任何其他脚本之前,必须下载并解析Jquery。