3

我需要处理对 jQueryMobile 项目的 $.ajax() 调用的超时。做一些研究,我遇到了两种可行的方法。

.error() .fail()似乎是通用的:如果调用因任何原因失败,那么我将被踢回一个错误堆栈,然后编写函数调用来处理我需要的任何事情。

.timeout,似乎让我专门处理超时并指定我可以等待的时间段,如果我没有收到答案,则调用超时并引发错误。

我的问题是在移动环境中,处理.timeout()通话超时会更好吗?或者我应该用函数覆盖所有调用并在错误回调中处理超时?.error() .fail()

使用移动设备时,预计用户可能会走出覆盖区域,因此如果呼叫永远不会返回,我的直觉会说实现超时功能。错误回调是否有内置超时?我想优雅地处理所有错误,所以似乎一个快乐的媒介会同时实现这两者,并指定超时以直接与超时回调一起工作。

有什么我可能在这里遗漏的吗?

4

1 回答 1

0

超时事件将触发fail()-function!

$.ajax()您应该为-request设置超时值。

$.ajax({
     timeout: 15000 // 15sec
    });

如果 ajax-request 在这段时间内没有收到响应,它将执行在 -function 中传递的.fail()函数。

$.ajax()
  .fail(function(jqXHR, textStatus, errorThrown) { 
        if(textStatus === 'timeout') {
             alert("$.ajax failed!"); 
        {
  });
于 2013-03-20T19:57:28.923 回答