首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >getJSON超时处理

getJSON超时处理
EN

Stack Overflow用户
提问于 2013-01-09 23:25:56
回答 5查看 24.8K关注 0票数 22

我正在使用jQuery getJSON()函数。这个函数可以毫无问题地获取数据。但有时等待,等待...我的加载栏在页面中央显示加载加载。因此jQuery ajax()函数有一个超时变量。但是我想使用getJSON函数。我认为我可以使用ajaxStart()ajaxStop()函数。但是怎么做呢?

代码语言:javascript
复制
$('.loadingDiv')
    .hide()
    .ajaxStart(function() {
        $(this).fadeIn();
        setTimeout("throw '';",15000) //i used this but didn't work
        setTimeout("return;",15000) //i used this but didn't work
        setTimeout("abort();",15000) //i used this but didn't work.(Abort all ajax events)
    })
    .ajaxStop(function() {
        $(this).fadeOut();
    });
EN

回答 5

Stack Overflow用户

发布于 2013-01-09 23:30:22

getJSON()只是以下内容的简写:

代码语言:javascript
复制
$.ajax({
    dataType: "json",
    url: url,
    data: data,
    success: success
});

因此,您可以使用$.ajax()并根据需要指定timeout选项。另请参阅:http://api.jquery.com/jQuery.getJSON/

票数 17
EN

Stack Overflow用户

发布于 2013-01-09 23:40:38

正如致命吉他所提到的,getJSON()函数只是$.ajax()的一种简写。如果您希望检测是否发生了超时,而不是实际的错误,请使用以下代码。

代码语言:javascript
复制
var request = $.ajax({
    dataType: "json",
    url: url,
    data: data,
    success: function( ) { },
    timeout: 2000
}).fail( function( xhr, status ) {
    if( status == "timeout" ) {
        // do stuff in case of timeout
    }
});
票数 12
EN

Stack Overflow用户

发布于 2014-03-03 04:25:07

也总会有核路线:

代码语言:javascript
复制
//Set AJAX timeout to 10 seconds
$.ajaxSetup({
  timeout: 10*1000
});

这将设置您的程序发出的所有AJAX请求(即使是通过$.getJSON)的超时时间为10秒(或您拥有的任何内容)。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14238619

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档