我需要处理我的$ .ajax()调用jQueryMobile项目的超时。做一些研究我发现了两种可行的方法。
.error()
.fail()
似乎是通用的:如果调用因任何原因失败,那么我会踢回错误堆栈,然后写入函数调用处理我需要的任何东西。
.timeout
,似乎让我专门处理超时并指定一个我可以等待的时间段,如果我没有收到答案,那么呼叫会超时并引发错误。
我的问题是在移动环境中,通过.timeout()
电话处理超时会更好吗?或者我应该使用 .error()
.fail()
函数覆盖所有调用并处理错误回调中的超时?
使用移动设备时,用户可能会走出覆盖区域,因此如果呼叫永远不会返回,我的直觉会说要实现超时功能。错误回调是否有内置超时?我想优雅地处理所有错误,所以似乎可能是一个快乐的媒介实现两者,并指定超时直接使用超时回调。
这里有什么我可能会遗失的吗?
答案 0 :(得分:0)
超时事件将触发fail()
- 函数!
您应该为$.ajax()
- 请求设置超时值。
$.ajax({
timeout: 15000 // 15sec
});
如果ajax-request在这段时间内没有收到响应,它将超出.fail()
- 函数中传递的函数。
$.ajax()
.fail(function(jqXHR, textStatus, errorThrown) {
if(textStatus === 'timeout') {
alert("$.ajax failed!");
{
});