2012-08-05 105 views
1

在jQuery Mobile中,如果用户点击一个按钮,会出现一个加载图标,然后通过Ajax加载新的网页。jQuery Mobile Ajax导航超时

但是,在我的情况下服务器可能没有响应。有没有办法让超时(例如10秒)的ajax导航功能? (如果时间限制超过,请停止尝试导航并显示错误消息)

+0

已经问 http://stackoverflow.com/questions/5225597/set-timeout-for-ajax-jquery – zizoujab 2012-08-05 13:53:49

+0

我不明白他们的正确回答,我应该在哪里放置该代码?以及如何显示错误信息?你能给个例子吗? – 2012-08-05 14:01:49

+0

如果你已经写了一些代码发布它,所以我们可以看到它有什么问题。因为在jQuery和jQuery手机中,有很多方法可以进行ajax调用。 – zizoujab 2012-08-05 14:13:02

回答

1

要设置超时时间,我认为您不应该以静态方式执行此操作(使用“数据转换”) 您可以让侦听器链接('onclick')和监听器内的ajax调用来加载你的页面。使用$.mobile.changePage()来做到这一点。

$.mobile.changePage()函数用于jQuery Mobile中的很多地方。例如,单击链接时,其href属性被标准化,然后$.mobile.changePage()处理其余的。

所以你的代码可能看起来是这样的:

$('#link_id').click(function() { 
    $.ajax({ 
    url: "page_served_from_server", 
     error: function(jqXHR, strError){ 
     if(strError == 'timeout') 
     { 
      //do something. Try again perhaps? 
     } 
    }, 
    success: function(){ 
     //charge your page : 
     // $.mobile.changePage('yourPageAdress',"turn",false,true); 
    }, 
    // here you can specify your timeout in milliseconds 
    timeout:3000 
    }); 
});