我需要处理jQueryMobile项目的$ .ajax()调用上的超时。做一些研究,我遇到了两种可行的方法。.error()
.fail()
似乎是通用的:如果由于某种原因调用失败,那么我将退回一个错误堆栈,然后编写该函数调用以处理我需要的任何内容。.timeout
似乎让我专门处理超时并指定我可以等待的时间段,如果我没有收到应答,则 call 超时并引发错误。
我的问题是在移动环境中,使用.timeout()
调用来处理超时会更好吗?还是应该使用.error()
.fail()
函数覆盖所有调用并处理错误回调中的超时?
与移动设备一起使用时,预计用户可能会走出覆盖区域,因此,如果 call 永不返回,我的直觉就会说要实现超时功能。错误回调有内置超时吗?我想优雅地处理所有错误,因此似乎很高兴在实现这两个方面,并指定超时以直接与超时回调一起使用。
我在这里可能会缺少什么吗?
最佳答案
超时事件将触发fail()
功能!
您应该为$.ajax()
-request设置一个超时值。
$.ajax({
timeout: 15000 // 15sec
});
如果ajax-request在这段时间内未收到响应,它将执行
.fail()
-function中已传递的功能。$.ajax()
.fail(function(jqXHR, textStatus, errorThrown) {
if(textStatus === 'timeout') {
alert("$.ajax failed!");
{
});