因此,我正在尝试同步加载JS文件,因为我的网站上的某些其他功能需要它。
但是,我想限制此脚本的可能加载延迟,如果它需要超过250毫秒(它偶尔会这样做)。
有没有办法使用AJAX同步加载脚本,如果它在250ms内没有完成,那么继续加载页面的其余部分?
更新
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();
答案 0 :(得分:0)
JavaScript是单线程的。在同步加载完成之前,没有其他任何东西可以运行(甚至不是中止指令)。
在您的情况下,使用异步加载似乎很自然。