如何解决如果加载超时,LABJS中是否提供了回调函数?
| 我通过LabJS异步加载脚本,并具有一系列依赖脚本。现在,如果链中的脚本之一中断了(从某种意义上说,它无法下载或连接超时),我相信依赖链下的其余脚本将不会执行。在这种情况下,如果特定脚本加载失败,是否可以提供自定义回调函数以采取适当的措施? 如果LabJS无法做到这一点,那么其他异步脚本加载程序是否可以实现?解决方法
这是一个示例,显示了如何在LABjs代码周围包装setTimeout()超时...在这种情况下,它提供了一个回退机制,它尝试从CDN加载jquery,然后如果超时过去,它将中止并尝试而是从本地文件加载jquery。
https://gist.github.com/670840
, 根据getify的说法,他恰好坐在距我约20英尺的地方,因此通常没有办法像这样处理超时,主要是因为超时不是显式的“正”事件。 (在这种情况下,关于库如何处理依赖关系链的特定情况,我将让作者自己进行澄清。)
您可以做的就是使用自己的看门狗来等待,只要您认为合适即可。只需运行一个时间间隔计时器,检查脚本是否已显示到页面上,就可以看出一些迹象,如果经过多次迭代后仍看不到脚本,则可以使用其他方法(不同的脚本宿主)。
, 那这个呢?我还没有测试过:
$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\');
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。