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标准。