我正在使用jQuery getJSON()
函数。这个函数可以毫无问题地获取数据。但有时等待,等待...我的加载栏在页面中央显示加载加载。因此jQuery ajax()
函数有一个超时变量。但是我想使用getJSON
函数。我认为我可以使用ajaxStart()
和ajaxStop()
函数。但是怎么做呢?
$('.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();
});
发布于 2013-01-09 23:30:22
getJSON()
只是以下内容的简写:
$.ajax({
dataType: "json",
url: url,
data: data,
success: success
});
因此,您可以使用$.ajax()
并根据需要指定timeout
选项。另请参阅:http://api.jquery.com/jQuery.getJSON/
发布于 2013-01-09 23:40:38
正如致命吉他所提到的,getJSON()
函数只是$.ajax()
的一种简写。如果您希望检测是否发生了超时,而不是实际的错误,请使用以下代码。
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
}
});
发布于 2014-03-03 04:25:07
也总会有核路线:
//Set AJAX timeout to 10 seconds
$.ajaxSetup({
timeout: 10*1000
});
这将设置您的程序发出的所有AJAX请求(即使是通过$.getJSON)的超时时间为10秒(或您拥有的任何内容)。
https://stackoverflow.com/questions/14238619
复制相似问题