Jquery abort()没有'似乎没有完全释放
Jquery abort() doesn't seem to release fully
我有一个intranet站点,用户可以在chrome中的多个选项卡中导航。其中一些会同时进行多个繁重的ajax调用,以固定的间隔加载大量数据。
我使用页面可见性api来确保如果在间隔触发时没有选择选项卡,它只会重置间隔;否则,它会刷新数据。
我最近添加了一些代码,当页面失去可见性时,如果页面正在刷新,可以中止ajax调用。
我发现,即使我中止了ajax调用,从这个客户端向服务器发出的后续请求也会有一段时间。就好像每个服务器的最大连接数没有在abort()上重置一样。(编辑:并不是说服务器仍在处理,而是浏览器似乎没有意识到它可以从队列中提取请求并进行处理。)
以前有人遇到过这个问题并解决了吗?
不幸的是,终止客户端的ajax请求并不能阻止服务器处理该请求。事实上,服务器甚至根本不知道客户端已经中止了请求。
一些服务器端框架允许您检查客户端是否仍然连接,但这充其量是不可靠的。
当您中止第一个ajax请求时,您可以通过向服务器发起第二个ajax请求来绕过这一问题,该请求基本上会通知服务器终止与您中止的会话ID相关的任何正在运行的进程。不过,这可能会变得有点棘手,尤其是如果您需要终止负责更新数据的进程,则需要确保您保持数据完整性,回滚所做的任何更改等。
相关文章:
- 显示:阻止/无html元素,css.not从内存中释放
- MVC和JQuery Mobile:单选按钮在发布时释放状态
- ReacJS与猴面包树,如何在卸载组件后释放光标
- Jquery abort()没有'似乎没有完全释放
- 在拖动过程中释放鼠标时忽略 JavaScript mouseUp 事件
- 节点.js集群模块不会在 http 上释放套接字/端口.Server.close().
- 在 Node 中.js释放 zalgo 的设计模式为什么异步路径是一致的
- 检查是否释放了 HTML 按钮
- 关闭 DIalog 后释放 Java Applet
- 继续功能,直到释放鼠标为止
- 相位器-按键释放
- 在客户端断开连接时释放事件处理程序 Socket.IO
- jQuery UI可排序,释放鼠标按钮事件
- 自定义Cordova插件,释放一个保持回调而不调用它
- 如果释放鼠标时内部元素未悬停,则防止触发“单击”的正确方法
- Javascript自动释放资源(如RAII)
- 为什么尝试释放此Node MySQL池会导致错误
- 单击时更改鼠标指针,释放时返回
- 如何在html中释放表中的表头
- 如何无限删除PouchDB数据库以释放空间