在等待请求 x 秒后取消 getJSON
Cancel getJSON after pending request x seconds
我正在使用此代码加载广告网络:
$.getJSON('https://server.ads.io/api/v1/decision/?publisher=xx-com&ad_types=text-v1&format=jsonp', function (data) {
$('#ea-wrapper').html(data.html);
});
在 https://server.ads.io
加载时间过长的情况下,浏览器将等待广告 ad aeternum。我正在寻找的是一种在等待 3 秒没有响应后取消 getJSON 的方法。知道如何实现吗?
您可以手动 abort 我的评论中提到的请求。
您需要将 getJSON
设置为 variable
并在三秒后 setTimeout
中调用 variable
到 abort
请求。
setTimeout(function(){
//kill the request
adRequest.abort()
}, 3000) //3 seconds
您可以尝试的最终代码如下:
var adRequest = $.getJSON('https://server.ads.io/api/v1/decision/?publisher=xx-com&ad_types=text-v1&format=jsonp', function(data) {
$('#ea-wrapper').html(data.html);
});
setTimeout(function() {
//kill the request
addRequest.abort()
}, 3000) //3 seconds
如果你想使用 $.ajax
你可以使用原生 timeout
方法
$.ajax({
url: 'https://server.ads.io/api/v1/decision/?publisher=xx-com&ad_types=text-v1&format=jsonp',
type: 'GET',
dataType: 'jsonp',
success: function(data) {
$('#ea-wrapper').html(data.html);
},
timeout: 3000 //3 seconds
});
我正在使用此代码加载广告网络:
$.getJSON('https://server.ads.io/api/v1/decision/?publisher=xx-com&ad_types=text-v1&format=jsonp', function (data) {
$('#ea-wrapper').html(data.html);
});
在 https://server.ads.io
加载时间过长的情况下,浏览器将等待广告 ad aeternum。我正在寻找的是一种在等待 3 秒没有响应后取消 getJSON 的方法。知道如何实现吗?
您可以手动 abort 我的评论中提到的请求。
您需要将 getJSON
设置为 variable
并在三秒后 setTimeout
中调用 variable
到 abort
请求。
setTimeout(function(){
//kill the request
adRequest.abort()
}, 3000) //3 seconds
您可以尝试的最终代码如下:
var adRequest = $.getJSON('https://server.ads.io/api/v1/decision/?publisher=xx-com&ad_types=text-v1&format=jsonp', function(data) {
$('#ea-wrapper').html(data.html);
});
setTimeout(function() {
//kill the request
addRequest.abort()
}, 3000) //3 seconds
如果你想使用 $.ajax
你可以使用原生 timeout
方法
$.ajax({
url: 'https://server.ads.io/api/v1/decision/?publisher=xx-com&ad_types=text-v1&format=jsonp',
type: 'GET',
dataType: 'jsonp',
success: function(data) {
$('#ea-wrapper').html(data.html);
},
timeout: 3000 //3 seconds
});