Những câu hỏi:jQuery ajax() sử dụng thành công, lỗi và đầy đủ vs .done(), .fail() và luôn luôn()
- Chúng ta có nên thay đổi mã hóa của chúng tôi như đề xuất dưới đây?
- Có một sự khác biệt giữa
.done()
&success:
,.fail()
&error:
và.always()
&complete:
?
Lời mở đầu:
tôi đã đặt cùng một cuộc gọi jQuery.ajax, mà tôi đã thực hiện thành công trong quá khứ quá. Một cái gì đó như thế này:
$.ajax(
{
url: someUrl,
type: 'POST',
data: someData,
datatype: 'json',
success: function (data) { someSuccessFunction(data); },
error: function (jqXHR, textStatus, errorThrown) { someErrorFunction(); }
});
Trong khi xem nhanh một số tài liệu, tôi đã xem qua một tài liệu tham khảo cho biết rằng cuộc gọi thành công, lỗi và đầy đủ không được dùng nữa cho jQuery 1.8. Để chuẩn bị mã của bạn để loại bỏ cuối cùng, hãy sử dụng jqXHR.done(), jqXHR.fail() và jqXHR.always() để thay thế.
Do đó chúng tôi nên bắt đầu mã hóa một cái gì đó giống như thay vì điều này:
$.ajax("example.php")
.done(function (data) { someSuccessFunction(data); })
.fail(function (jqXHR, textStatus, errorThrown) { someErrorFunction(); })
.always(function() { alert("complete"); });
tôi thích phương pháp thứ hai ... nơi lời hứa trả về bởi ajax được sử dụng –
Các callbacks không phản đối. Các phương pháp liên quan trên đối tượng jqxhr là. –
Tôi đồng ý với Arun, tôi cũng nghĩ rằng cá nhân đó dễ đọc hơn – Rooster