作者:无神ABC_958 | 来源:互联网 | 2023-05-23 15:15
我收到一条警告信息:
主线程上的同步XMLHttpRequest因其对最终用户体验的不利影响而被弃用.如需更多帮助,请访问http://xhr.spec.whatwg.org/.
当执行包含脚本(具有本地src
)的异步AJAX请求时,使用$.html()
方法将其注入HTML .我已经将给定的脚本更改为包含async="async"
,但警告消息仍然存在.
我已经开始调试这个问题,发现我的附加
response.html
json.js
console.log('hi');
触发警告不需要AJAX请求 - 只需要插入一个
值得注意的是,这已经修复,按照https://github.com/jquery/jquery/issues/2060
1> A. Wolff..:
更新: 这已在jQuery 3.x中修复.如果您无法升级到3.0以上的任何版本,则可以使用以下代码段但请注意,现在您将失去目标内容中脚本加载的同步行为.
您可以修复它,将xhr请求的显式异步选项设置为true
:
$.ajaxPrefilter(function( options, original_Options, jqXHR ) {
options.async = true;
});
值得一提的是,尽管这确实会异步检索');
我想jQuery将在未来的某个版本中解决这个问题.在此之前,我们可以忽略它或使用A. Wolff的建议.
3> meskobalazs..:
即使是最新的jQuery也有这一行,所以你有这些选择:
自己更改jQuery的源代码 - 但也许有充分的理由使用它
请注意,此选项已弃用且不会过时.
更改您的代码,因此它不使用此功能
我认为在这种情况下,2号是最明智的行动方案.
顺便说一句,如果你还没有尝试过,试试看:$.ajaxSetup({async:true});
但我不认为它会起作用.
4> Tim Hallman..:
尽管使用async,但我还是被此错误消息困扰:true。原来实际的问题是使用该success
方法。我将其更改为done
,警告已消失。
success: function(response) { ... }
替换为:
done: function(response) { ... }