javascript - jquery $.get 在主线程上用简单的 html 警告同步 xm​​lhttprequest

标签 javascript jquery html ajax

当执行 jquery $.get() 调用来检索包含带有 src 属性的脚本标记的 html 文件时,我收到警告“主线程上的同步 XMLHttpRequest 已被弃用,因为它会对最终产生不利影响用户的体验。”在 Firefox 的控制台中。下面是一些简单的代码,我用它们来缩小演示范围的警告范围:

foo.html

<html>
<head>
<script src="http://code.jquery.com/jquery-1.11.2.js"></script>
</head>
<body>
<script>$.get("bar.html", function(data) { $('#testdiv').html(data);});</script>
<div id="testdiv"></div>
</body>
</html>

bar.html

<script src="foo.js"></script>

请注意,foo.js 是空的,因此其中似乎没有任何内容导致警告。我不明白这是为什么。有人知道是什么原因造成的吗?

最佳答案

我自己开始全面调查这个问题,当 JQuery 动态加载包含引用外部脚本的脚本标记的页面时,浏览器会生成警告。

因此,在您的情况下,foo.html 加载 bar.html,当您的浏览器开始解析 bar.html 中的内容时,它会遇到 <script src="foo.js"></script>这会导致浏览器停止解析内容、加载并执行foo.js 。如果foo.js中没有任何代码,您不会注意到对性能有任何损害,但如果您的浏览器花费明显的时间来解析和执行 foo.js那么您的最终用户实际上将失去对浏览器的控制(意味着浏览器将显示为被卡住),直到 foo.js 完成执行。这就是警告消息的含义: detrimental effects to the end user's experience .

我正在考虑的解决方法是实现自定义事件以在适当的时间触发我的代码的相关部分,这可能是一个更好的想法。我很想知道其他人是否有任何巧妙的方法来规避这个问题。

关于javascript - jquery $.get 在主线程上用简单的 html 警告同步 xm​​lhttprequest,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28204632/

相关文章:

javascript - 如何将变量从 html 传递到指令 AngularJS?

javascript - 类型错误 : stepUp called on an object that does not implement interface HTMLInputElement

javascript - AJAX - 附加数据时大响应锁定浏览器

Javascript 打印 HTML 但内容未以形式捕获

javascript - 将图库插件与图像放大功能插件集成

javascript - Raphael JS 画板不工作

javascript - 如果滚动位于 JavaScript 顶部,如何将类添加到导航栏

javascript - Intel XDK : document. location.href 导致错误页面

javascript - Cesium Earth实体路径质量

javascript - 为什么文件拖放禁用可拖动元素?