Javascript 如果移动客户端在ajax请求过程中仅几秒钟就失去了INTERNET连接,则在rails UJS上断开INTERNET连接

Javascript 如果移动客户端在ajax请求过程中仅几秒钟就失去了INTERNET连接,则在rails UJS上断开INTERNET连接,javascript,ruby-on-rails,ruby,ajax,ruby-on-rails-4,Javascript,Ruby On Rails,Ruby,Ajax,Ruby On Rails 4,我对Rails UJS ajax请求有问题 我的使用案例是,如果移动设备上的用户通过点击链接触发ajax请求(代码见下文),那么,当请求试图访问服务器时,,如果有任何机会,而且通常是这样,您甚至会断开网络连接一秒钟,那么我的模式将关闭,不再等待(可能客户机会在200毫秒后获得网络连接…) 在放弃尝试之前,我想告诉Rails UJS:“尝试连接到服务器至少10秒” 事实上,这是一种非常常见的情况:你触发ajax,你会看到“加载数据”的模式,然后你会失去一秒钟的网络连接。到目前为止,我设法为用户提供

我对Rails UJS ajax请求有问题

我的使用案例是,如果移动设备上的用户通过点击链接触发ajax请求(代码见下文),那么,当请求试图访问服务器时,,如果有任何机会,而且通常是这样,您甚至会断开网络连接一秒钟,那么我的模式将关闭,不再等待(可能客户机会在200毫秒后获得网络连接…)

在放弃尝试之前,我想告诉Rails UJS:“尝试连接到服务器至少10秒”

事实上,这是一种非常常见的情况:你触发ajax,你会看到“加载数据”的模式,然后你会失去一秒钟的网络连接。到目前为止,我设法为用户提供了当他点击触发ajax的按钮时离线的情况,但我没有处理上面描述的情况,即他在线时n他使ajax变得疲劳,但当ajax试图检索数据时,他会在很短的时间内断开连接

如何做到这一点

HTML

<div id="zone" class="has-js">  
          <%= link_to image_tag(smallest_src_request),
              deal_modal_path,
              remote: true
</div>
var isOnLine = navigator.onLine;
if (isOnLine) {
  // if client has network connection         
  ModalWhenConnected();
} else { // for client disconnected WHEN triggering call to server, invite to reconnect
  modalMessageWhenNotConnected();
}

//using hubspot Messenger: http://github.hubspot.com/messenger/
function ModalWhenConnected() {
  var msg;
  msg = Messenger().run({
    action: $.ajax,
    successMessage:  '<%= j render partial: "deals/deal_messages" %>',
    progressMessage:  '<div class="loading-dots">Loading&nbsp;<span>.</span>&nbsp;<span>.</span>&nbsp;<span>.</span></div>',

  }); 

}


function modalMessageWhenNotConnected() {
  var msg;
  msg = Messenger().post({
    message:            "It seems you lost your Internet connection. Please connect and try again.",
    hideAfter:          3,
    type:               'error'
  });
}
GET http://localhost:3000/deals/deal5/ net::ERR_INTERNET_DISCONNECTED