因此,我正在尝试同步加载一个JS文件,因为我的站点上的一些其他功能需要它。
但是,我想限制这个脚本可能的加载延迟,如果它曾经超过250ms (它偶尔会这样做)。
有没有办法使用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();
发布于 2013-10-01 17:13:06
JavaScript是单线程的。在同步加载完成之前,其他任何东西都不能运行(甚至不能运行abort指令)。
在您的例子中,使用异步加载似乎是很自然的。
https://stackoverflow.com/questions/19121862
复制