📅  最后修改于: 2023-12-03 15:07:41.416000             🧑  作者: Mango
在开发中,我们可能会需要在 jQuery 中设置超时,以确保异步请求不会因为等待太久而阻塞其他操作。本文将介绍如何在 jQuery 中添加设置超时。
使用 $.Deferred()
方法创建一个 promise 对象。
var defer = $.Deferred();
使用 setTimeout()
函数创建一个超时对象,该对象在指定的时间后将被触发,并且将一个超时标志(timeoutFlag)设置为 true。
var timeoutFlag = false;
setTimeout(function() {
timeoutFlag = true;
}, 5000);
使用 $.ajax()
函数发起异步请求,并在请求成功或失败时分别调用 resolve()
或 reject()
方法。
$.ajax({
url: '/example/api',
method: 'GET',
success: function(data) {
if(!timeoutFlag) {
defer.resolve(data);
}
},
error: function(error) {
if(!timeoutFlag) {
defer.reject(error);
}
}
});
使用 $.when()
函数将 $.ajax()
和超时对象包装在一起,并返回一个新的 promise 对象。
$.when(defer, timeoutFlag).done(function(data) {
console.log(data);
}).fail(function(error) {
console.log(error);
});
var defer = $.Deferred();
var timeoutFlag = false;
setTimeout(function() {
timeoutFlag = true;
}, 5000);
$.ajax({
url: '/example/api',
method: 'GET',
success: function(data) {
if(!timeoutFlag) {
defer.resolve(data);
}
},
error: function(error) {
if(!timeoutFlag) {
defer.reject(error);
}
}
});
$.when(defer, timeoutFlag).done(function(data) {
console.log(data);
}).fail(function(error) {
console.log(error);
});
在 jQuery 中添加设置超时可以确保异步请求不会阻塞其他操作,并提高程序的响应速度。使用上述步骤,我们可以轻松实现 jQuery 中的设置超时功能。