我需要处理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!");
        {
  });

09-25 18:57
查看更多