Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/73.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ajax/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery $.ajax中的done()方法代替success()有什么优点_Jquery_Ajax - Fatal编程技术网

Jquery $.ajax中的done()方法代替success()有什么优点

Jquery $.ajax中的done()方法代替success()有什么优点,jquery,ajax,Jquery,Ajax,例如: $.ajax({ url: '@Url.Action("_sampleMethod","Sample")', type: 'GET', cache: false, }).done(function (result) { // ... }); 你的代码格式不好,但我还是要试一试 无论ajax请求是否成功,done()都会触发函数 success()仅在ajax请求成功时触发函数 您的代码格式不好,但我还是要试一试 无论ajax请求是否成功,done()都会触发函数 suc

例如:

$.ajax({
  url: '@Url.Action("_sampleMethod","Sample")',
  type: 'GET',
  cache: false,
}).done(function (result) {
  // ...
});

你的代码格式不好,但我还是要试一试

无论ajax请求是否成功,done()都会触发函数


success()仅在ajax请求成功时触发函数

您的代码格式不好,但我还是要试一试

无论ajax请求是否成功,done()都会触发函数


success()仅在ajax请求成功时触发函数

success是jQuery中成功回调的传统名称,定义为ajax调用中的一个选项。但是,由于实现了$.Deferreds和更复杂的回调,done是实现成功回调的首选方法,因为它可以在任何延迟的成功示例中调用

$.ajax({
  url: '/',
  success: function(data) {}
});
完成示例

$.ajax({url: '/'}).done(function(data) {});

这样做的好处是,$.ajax的返回值现在是一个延迟承诺,可以绑定到应用程序中的任何其他地方。假设您想从几个不同的地方调用ajax。您不必将success函数作为选项传递给进行此ajax调用的函数,只需让函数返回$.ajax本身,并将回调绑定为done、fail、then或其他类型。请注意,always是一个回调,无论请求成功或失败都将运行。“完成”仅在成功时触发。

成功是jQuery中成功回调的传统名称,定义为ajax调用中的一个选项。但是,由于实现了$.Deferreds和更复杂的回调,done是实现成功回调的首选方法,因为它可以在任何延迟的成功示例中调用

$.ajax({
  url: '/',
  success: function(data) {}
});
完成示例

$.ajax({url: '/'}).done(function(data) {});

这样做的好处是,$.ajax的返回值现在是一个延迟承诺,可以绑定到应用程序中的任何其他地方。假设您想从几个不同的地方调用ajax。您不必将success函数作为选项传递给进行此ajax调用的函数,只需让函数返回$.ajax本身,并将回调绑定为done、fail、then或其他类型。请注意,always是一个回调,无论请求成功或失败都将运行。“完成”只会在成功时触发。

done()
当有一系列多个Ajax调用,其中一个等待另一个完成回调时,该方法很有用。因此,只有在Ajax调用完成后,才能在
done()
中执行post-Ajax代码。而
success()
主要是单个Ajax调用的一部分,它可以帮助您根据需要处理响应。

done()
当有一系列多个Ajax调用,其中一个等待另一个完成回调时,该方法很有用。因此,只有在Ajax调用完成后,才能在
done()
中执行post-Ajax代码。而
success()
主要是单个Ajax调用的一部分,帮助您根据需要处理响应。

success
仅在Ajax调用成功时触发,即最终返回HTTP 200状态<代码>错误在请求失败时激发,并在请求完成时
完成
,无论成功与否

在jQuery 1.8中的
jqXHR
对象(由
$.ajax
返回)
success
替换为
done
error
替换为
fail
complete
替换为always

但是,您应该仍然能够使用当前语法初始化AJAX请求。因此,它们做了类似的事情:

// set success action before making the request
$.ajax({
  url: '...',
  success: function(){
    alert('AJAX successful');
  }
});

// set success action just after starting the request
var jqxhr = $.ajax( "..." )
  .done(function() { alert("success"); });

我认为此更改是为了与jQuery 1.5的新延迟对象兼容。

success
仅在AJAX调用成功时触发,即最终返回HTTP 200状态<代码>错误在请求失败时激发,并在请求完成时
完成
,无论成功与否

在jQuery 1.8中的
jqXHR
对象(由
$.ajax
返回)
success
替换为
done
error
替换为
fail
complete
替换为always

但是,您应该仍然能够使用当前语法初始化AJAX请求。因此,它们做了类似的事情:

// set success action before making the request
$.ajax({
  url: '...',
  success: function(){
    alert('AJAX successful');
  }
});

// set success action just after starting the request
var jqxhr = $.ajax( "..." )
  .done(function() { alert("success"); });

我认为此更改是为了与jQuery 1.5的新延迟对象兼容。

两者都是专有的,将来可能会被删除,因此现在都不应该使用。请使用jQuery也支持的ES6 promise标准
.then()
。then()是否涵盖了这两种标准的用途。是的,
。then()
是您所需要的全部,它是ES6 promise标准。这两种标准都是专有的,将来可能会被删除,因此现在都不应使用。使用jQuery也支持的ES6 promise标准
.then()
。then()是否涵盖了两者的用途。是的,
。then()
是您所需要的全部,它是ES6 promise标准。