【发布时间】:2016-03-30 02:33:00
【问题描述】:
为什么Firefox会随机停止加载js动态添加的<script>标签?
在这张图片上,我动态加载这些脚本并将它们添加到 dom 中
- "/assets/js/lib/socket.io-1.3.6.js"
- "/assets/js/lib/tweenmax.min.js"
- “/assets/js/lib.js”
- “/assets/js/module.js”
- “/assets/js/modules”
相当随机,结果是这样,动态加载的随机脚本与其余脚本之间存在很大的延迟(7-15 秒之间)
我实际上是这样加载脚本的
function(url, callback){
var elem = document.createElement("script");
elem.async = true;
elem.src = url;
elem.type = "text/javascript";
elem.onload = callback;
document.getElementsByTagName("body")[0].appendChild(elem);
}
编辑:
当我在我的 html 页面中添加脚本标签时,延迟不会出现,它仅在我使用 JavaScript 加载脚本时才会出现。但我实际上需要用 JavaScript 加载这些脚本。
有一个bug https://jsfiddle.net/ccgb0hqr/ 如果警报出现立即刷新页面,直到错误发生
【问题讨论】:
-
标签是什么意思??
-
在页面加载和加载动态脚本的函数运行之间是否有很多处理?
-
不确定我是否理解正确,但是每次加载脚本时都会运行回调,如果回调需要很长时间,它将推迟以这种方式加载的其他内容。如果可能,在所有脚本加载后运行回调?
-
@AdamJeffers 通过标签表示
-
@Shilly 实际上我在我的电脑上运行它,所以回调应该至少需要 5 毫秒,这在 chrome 上完美运行,但在 Firefox 上,我不知道为什么会出现这种延迟......
标签: javascript firefox browser loading script-tag