微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

待处理请求x秒后取消getJSON

如何解决待处理请求x秒后取消getJSON

我正在使用以下代码加载广告网络:

<Border BorderThickness="1" BorderBrush="White"> <TextBlock ... /> </Border>

$.getJSON('https://server.ads.io/api/v1/decision/?publisher=xx-com&ad_types=text-v1&format=jsonp',function (data) { $('#ea-wrapper').html(data.html); }); 加载时间过长的情况下,浏览器将等待广告 ad aeternum 。我正在寻找的是一种等待3秒钟而没有响应的取消getJSON的方法。知道如何实现吗?

解决方法

您可以按照我的评论中的说明手动abort请求。

您需要将getJSON设置为variable,并在三秒钟后调用variable中的setTimeoutabort请求。

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
});

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。