【发布时间】:2015-07-06 18:08:01
【问题描述】:
我正在测试,看看是否可以在文档准备好后使用 javascript 加载 .js,并从 chrome 收到此警告消息:
“主线程上的同步 XMLHttpRequest 已被弃用,因为它会对最终用户的体验产生不利影响。”
我的代码是这样的:
$(document).ready(function(){
var s=$('<script src="test.js"></script>');
$('body').append(s);
});
我的问题是:
1) 在这种情况下,什么是“同步 XMLHttpRequest”?我认为这与'test.js'的加载有关,但如果我将其更改为var s=$('<img src="image.png"></img>');,则不会显示警告消息。
2) 如果必须以这种方式加载 .js 文件,最佳做法是什么?
*********** 编辑 ***********
test.js的内容是
console.log(document.getElementsByTagName('h1'))
在 HTML 中有一个h1。
【问题讨论】:
-
那不是同步的 XMLHttpRequest。那个 JS 文件可能正在制作一个。
-
test.js的内容就是
console.log(document.getElementsByTagName('h1')),我正在编辑到主线程。 -
在文档中添加脚本标签不会创建 XMLHttpRequest。问题出在其他地方。错误信息必须带有行号和文件名,您能检查并发布导致此错误的原因吗?
-
这是 jQuery 2.1.4 中的这一行(code.jquery.com/jquery-2.1.4.min.js):
if (f.open(a.type, a.url, a.async, a.username, a.password), a.xhrFields)