作者:mobiledu2502928043 | 来源:互联网 | 2023-05-28 18:05
像许多其他人一样,我的网站正在使用jQuery.当我打开开发人员工具时,我看到一条警告说XMLHTTPRequest是
由于其对最终用户体验的不利影响而被弃用.
我继续阅读部分文档,但这是相当技术性的.有人可以用简单的术语解释从XMLHTTPRequest转换为WHATWG的后果吗?它说它发生在2012年.
此外,文档说工作人员之外的同步XMLHttpRequest正在从Web平台中删除,当发生这种情况时,如果用户代理在服务中拥有它们,他们是否需要修改现有代码?
1> Barmar..:
要避免此警告,请不要使用:
async: false
在你的任何$.ajax()
电话中.这是被XMLHttpRequest
弃用的唯一功能.
默认是async: true
,所以如果你根本不使用这个选项,你的代码应该是安全的,如果该功能真的被删除(它可能不会 - 它可能会从标准中删除,但我敢打赌浏览器将继续支持它多年).
这是jQuery的警告.我可以忽略它吗?我不使用同步调用服务器.我的完美主义者一面都不喜欢发出警告.
@Jordan我认为警告来自浏览器,而不是jQuery。每当您尝试使用同步AJAX时,它就会发生。如果使用jQuery,则只有在$ .ajax中指定该选项时才会发生。
我正在使用`jquery.i18n.properties.js`但是我的身边没有明确的调用`$ .ajax.也许在内部,但不确定.
2> Sam..:
接受的答案是正确的,但如果您使用Visual Studio 2013或更高版本在ASP.NET下进行开发,并且确定您没有发出任何同步的ajax请求或在错误的位置定义任何脚本,我发现了另一个原因.
解决方案是通过取消选中VS工具栏下拉列表中的"启用浏览器链接"来禁用"浏览器链接"功能,该下拉列表由顺时针指向的小刷新图标指示.一旦你这样做并重新加载页面,警告应该停止!
这应该只在本地调试时发生,但是知道警告的原因仍然很好.
我认为这是一个不好的建议只是为了在控制台中获取警告消息.禁用browserlink并摆脱browserlink添加的生产力增强功能,这样您就不会在浏览器控制台中看到警告消息?更好地提交微软的错误,它得到修复.
@ coding4fun感谢您的意见; 您可以随时向Microsoft提交错误.我不是说你应该禁用浏览器链接.在某些情况下,我的答案对于此警告的原因是准确的,并且在您自己的代码中排除某些内容很有用.一旦我意识到这不是我做错了,并且认为其他人也可能觉得它有用,我个人感觉更好.
3> 小智..:
这发生在我身上,因为在身体部分结束之前,在头部外面有一个外部js的链接.你知道,其中一个:
");
script.attr("src", basepath + "someotherfile.js");
$(document.body).append(script);
但我没有测试过这个想法.
4> Hugo Delsing..:
@ henri-chan曾将其作为评论提到,但我认为它值得更多关注:
当您使用jQuery / Javascript用新的html更新元素的内容,并且此新的html包含
标签时,这些标签将同步执行,从而触发此错误。样式表也是如此。
您知道XHR
在控制台窗口中看到正在加载的(多个)脚本或样式表时,这种情况正在发生。(Firefox)。