kas*_*lli 4 javascript ajax jquery asynchronous
在我的JS应用程序中,我有许多Ajax调用async: false.我正在使用最新的Chrome浏览器,并在我的控制台下方警告最近出现.
主线程上的同步XMLHttpRequest因其对最终用户体验的不利影响而被弃用.如需更多帮助,请访问http://xhr.spec.whatwg.org/.
我现在想给所有更改async: false到async: true.但它会导致很多错误,因为我的应用程序需要运行async: false.
警告只是一个错误或什么?我可以担心或忽略这一点吗?
JavaScript仅在UI线程上运行,因此同步AJAX调用将完全冻结浏览器,直到服务器回复.
它被认为是用于Web应用程序的UX设计中的一个不好的实践,主要浏览器不赞成使用回调的异步请求.
你现在可能不担心这个消息.这不是一个错误,但我强烈建议您开始重写它,因为当一个功能被标记为已弃用时,它意味着警告他们可以在将来的任何时候删除此功能.
它也被jQuery 1.8+弃用了
从jQuery 1.8开始,不推荐使用async:false和jqXHR($ .Deferred); 您必须使用success/error/complete回调选项而不是jqXHR对象的相应方法,例如jqXHR.done()或不推荐使用的jqXHR.success()
推荐的方式:
var request = $.ajax({
url: "script.php",
data: { id : menuId },
dataType: "application/json"
});
request.done(function(data) {
// Executed in case of success
});
request.fail(function( jqXHR, textStatus ) {
// Executed in case of error
});
Run Code Online (Sandbox Code Playgroud)
警告只是一个错误还是什么?
不,这不是一个错误。由于消息中所述的原因,同步请求确实已被弃用。
我可以担心这一点或忽略它吗?
您应该听取建议并对您的应用程序进行适当的更改(是的,这并不像更改为 那样简单async: false)async: true。
也许这有助于更好地理解异步操作: