jquery1.8,async:false和jqXHR($.Deferred)不推荐使用

jquery1.8,async:false和jqXHR($.Deferred)不推荐使用,jquery,Jquery,在脚本加载过程中调用ajax错误函数时,我遇到了一些问题。但是我可以通过添加async:false来修复它 例如: 在阅读文档时,它会说: 默认情况下,所有请求都是异步发送的(即设置为 默认情况下为true)。如果需要同步请求,请将此选项设置为 错。跨域请求和数据类型:“jsonp”请求不会 支持同步操作。请注意,同步请求可能会 暂时锁定浏览器,禁用请求时的任何操作 它是活动的。从jQuery1.8开始,在jqXHR中使用async:false ($.Deferred)已弃用;您必须使用完整/成

在脚本加载过程中调用ajax错误函数时,我遇到了一些问题。但是我可以通过添加
async:false
来修复它

例如:

在阅读文档时,它会说:

默认情况下,所有请求都是异步发送的(即设置为 默认情况下为true)。如果需要同步请求,请将此选项设置为 错。跨域请求和数据类型:“jsonp”请求不会 支持同步操作。请注意,同步请求可能会 暂时锁定浏览器,禁用请求时的任何操作 它是活动的。从jQuery1.8开始,在jqXHR中使用async:false ($.Deferred)已弃用;您必须使用完整/成功/错误 回调


Q)关于jqXHR($.Deferred),最后一部分是什么意思?这会影响我的脚本吗?

它不会影响你的脚本

这意味着,在执行同步AJAX请求时,不应该使用由
$.AJAX()
返回的对象公开的API(类似于或例如),而应该依赖
完整的
错误处理程序

换句话说,您的代码已经使用了正确的模式。如果它使用以下延迟操作,则必须对其进行修改:

// Do not write this code.
$.ajax({
    type: 'POST',
    url: REQUEST_URL,
    async: false,           // <-- Synchronous request.
    data: {
        'id': id
    },
    dataType: 'json'
}).done(function(output) {  // <-- Use of deferred method.
    // success
}).fail(function() {        // <-- There also.
    alert('Error, please refresh the page');
});
//不要编写此代码。
$.ajax({
键入:“POST”,
url:REQUEST_url,

async:false,//谢谢,只是想确保我的代码在将来的jquery中不会中断
// Do not write this code.
$.ajax({
    type: 'POST',
    url: REQUEST_URL,
    async: false,           // <-- Synchronous request.
    data: {
        'id': id
    },
    dataType: 'json'
}).done(function(output) {  // <-- Use of deferred method.
    // success
}).fail(function() {        // <-- There also.
    alert('Error, please refresh the page');
});