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

发布于 2024-11-14 18:11:56 字数 171 浏览 3 评论 0原文

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

I am asynchronously loading scripts through LabJS and have a chain of dependent scripts. Now if one of the scripts in the chain breaks (in the sense that it can not be downloaded, or connection times out) I believe that the remaining scripts under the dependency chain will not be executed. In such an event, is it possible to provide a custom callback function to take appropriate measures if a particular script fails to load ?
If this is not possible with LabJS, is it possible with any other Asynchronous script loader ?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

李白 2024-11-21 18:11:56

下面是一个示例,展示了如何将 setTimeout() 超时包装在 LABjs 代码中...在这种情况下,它提供了一种后备机制,尝试从 CDN 加载 jquery,然后如果超时,它会中止该操作并尝试从 CDN 加载 jquery而是本地文件。

https://gist.github.com/670840

Here's an example showing how to wrap setTimeout() timeouts around LABjs code... in this case it provides a fallback mechanism where it tries to load jquery from a CDN, then if the timeout passes, it aborts that and tries to load jquery from a local file instead.

https://gist.github.com/670840

虫児飞 2024-11-21 18:11:56

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

可以做的是使用你自己的看门狗等待,只要你觉得是合适的。只需运行一个间隔计时器,检查一些表明您的脚本已进入页面的迹象,如果经过一定次数的迭代后您未能看到它,您可以退回到替代方案(不同的脚本主机,无论如何)。

According to getify, who happens to be sitting about 20 feet away from me, there's not a way to handle timeouts like that in general, mostly because a timeout is not an explicit, "positive" event. (In the specific case of how the library handles the dependency chain in such cases, I'll let the author himself clarify.)

What you can do is use your own watchdog to wait as long as you feel is appropriate. Just run an interval timer, checking for some tell-tale sign that your script has made it onto the page, and if after some number of iterations you fail to see it you can fall back on an alternative (different script host, whatever).

蓦然回首 2024-11-21 18:11:56

这又如何呢?我没有测试过这个:

$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');
}

What about this? I have not tested this:

$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');
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文