0

所以我试图同步加载一个 JS 文件,因为我的网站上的一些其他功能需要它。

但是,我想限制这个脚本可能的加载延迟,如果它需要超过 250 毫秒(它偶尔会这样做)。

有没有办法使用 AJAX 同步加载脚本,如果它没有在 250 毫秒内完成,那么继续加载页面的其余部分?

更新:

var scriptURL = 'http://cdn.somesite.com/test.js';
var xmlhttp = new XMLHttpRequest();
xmlhttp.open("GET", scriptURL);
xmlhttp.onreadystatechange = function()
{
    if ((xmlhttp.status == 200) && (xmlhttp.readyState == 4))
    {
    eval(xmlhttp.responseText);
    var completeTime = new Date();
    console.log("Script downloaded in " + completeTime.getTime() - startTime.getTime() + "ms");
    }
};
xmlhttp.send();
var startTime = new Date();
4

1 回答 1

0

JavaScript 是单线程的。在您的同步加载完成之前,没有其他东西可以运行(甚至是中止指令)。

在您的情况下,使用异步加载似乎很自然。

于 2013-10-01T17:13:05.853 回答