Dưới đây là một số ví dụ minh họa việc thiết lập và phát hiện thời gian chờ trong mô hình cũ và mới của jQuery.
Live Demo
Hứa với jQuery 1.8+
Promise.resolve(
$.ajax({
url: '/getData',
timeout:3000 //3 second timeout
})
).then(function(){
//do something
}).catch(function(e) {
if(e.statusText == 'timeout')
{
alert('Native Promise: Failed from timeout');
//do something. Try again perhaps?
}
});
jQuery 1.8+
$.ajax({
url: '/getData',
timeout:3000 //3 second timeout
}).done(function(){
//do something
}).fail(function(jqXHR, textStatus){
if(textStatus === 'timeout')
{
alert('Failed from timeout');
//do something. Try again perhaps?
}
});
jQuery <= 1.7.2
$.ajax({
url: '/getData',
error: function(jqXHR, textStatus){
if(textStatus === 'timeout')
{
alert('Failed from timeout');
//do something. Try again perhaps?
}
},
success: function(){
//do something
},
timeout:3000 //3 second timeout
});
Lưu ý rằng textStatus param (hoặc jqXHR.statusText ) sẽ cho bạn biết lỗi là gì. Điều này có thể hữu ích nếu bạn muốn biết rằng sự thất bại là do thời gian chờ.
lỗi (jqXHR, textStatus, errorThrown)
Một chức năng được gọi nếu yêu cầu không thành công. Hàm nhận được ba đối số: Đối tượng jqXHR (trong jQuery 1.4.x, XMLHttpRequest), một chuỗi mô tả loại lỗi xảy ra và một đối tượng ngoại lệ tùy chọn, nếu xảy ra. Các giá trị có thể có cho đối số thứ hai (ngoài null) là "hết thời gian", "lỗi", "hủy bỏ" và "trình phân tích cú pháp". Khi xảy ra lỗi HTTP, errorThrown nhận phần văn bản của trạng thái HTTP, chẳng hạn như "Không tìm thấy" hoặc "Lỗi máy chủ nội bộ". Kể từ jQuery 1.5, cài đặt lỗi có thể chấp nhận một loạt các hàm. Mỗi chức năng sẽ được gọi lần lượt. Lưu ý: Trình xử lý này không được gọi cho các yêu cầu JSONP và tên miền chéo.
src: http://api.jquery.com/jQuery.ajax/
,
có một sau đó}
.