【问题标题】:Chrome - Refresh waits ajax request's end - long pollingChrome - 刷新等待ajax请求的结束 - 长轮询
【发布时间】:2017-07-27 18:31:50
【问题描述】:

我有一个很长的轮询请求,要求在我的网站上聊天。该请求持续 30s,并在收到响应时再次调用。

当我刷新页面(ctrl + R)时,chrome似乎要等到ajax调用结束,最长可以持续29.99s。

我试图在 'unload' 事件上绑定一个事件,但它是在 ajax 调用结束后发送的。

有没有办法让网络客户端“停止所有请求”,从而允许在几秒钟内正常刷新页面。

【问题讨论】:

  • 好吧,事实上我忘了在长轮询请求中写 'session_write_close()'。问题不是由于 chrome,而是由于服务器端在 php 会话被解锁之前被阻塞。

标签: javascript jquery long-polling


【解决方案1】:

您需要做的就是将您的 ajax 请求分配给一个变量,然后在窗口 onload 事件中中止它们。

var myAjax = $.ajax(...);
window.onunload = function(){ 
 if(typeof myAjax!=='undefined') {
   myAjax.abort();
 }
}

【讨论】:

  • onunload 在 ajax 调用结束后触发,正如我在帖子中指定的那样。它不起作用。
  • 事实上,当对下一页的请求完成时,不会触发 onunload。
猜你喜欢
  • 2012-03-27
  • 1970-01-01
  • 2013-08-02
  • 2013-09-26
  • 2018-12-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-08-05
相关资源
最近更新 更多