我通过LabJS异步加载脚本,并且有一系列依赖的脚本。现在,如果链中的一个脚本中断(在某种意义上,它无法下载,或者连接超时),我相信依赖链下的其余脚本将不会执行。在这种情况下,是否可以提供一个自定义回调函数,以便在特定脚本加载失败时采取适当的措施?如果使用LabJS不能做到这一点,那么是否可以使用其他异步脚本加载器呢?
发布于 2011-06-12 01:48:43
下面的示例展示了如何在LABjs代码中包装setTimeout()超时...在这种情况下,它提供了一种后备机制,尝试从CDN加载jquery,然后如果超时超时,它将中止该操作,并尝试从本地文件加载jquery。
发布于 2011-06-11 21:48:07
根据getify的说法,他恰好坐在离我20英尺远的地方,通常没有办法处理这样的超时,主要是因为超时不是一个明确的、“积极”的事件。(对于库在这种情况下如何处理依赖链的具体情况,我将让作者自己澄清。)
你能做的就是使用你自己的看门狗来等待,只要你觉得合适就行。只需运行一个间隔计时器,检查是否有一些迹象表明您的脚本已经出现在页面上,如果在多次迭代后仍未看到它,您可以退回到另一个替代方案(不同的脚本宿主,无论什么)。
发布于 2012-02-13 04:28:15
那这个呢?我让not测试了一下:
$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');
}https://stackoverflow.com/questions/6315368
复制相似问题