xmlHttpRequest abort() 方法不会关闭 Internet Explorer 中的连接

发布于 2024-08-23 13:42:21 字数 183 浏览 10 评论 0原文

我的页面上有多个 xmlHttpRequest,并且我尝试对它们全部调用 abort() 方法。在 FF 中效果很好。另一方面,IE 却没有做任何该死的事情。连接不会关闭,并且在请求完成之前我无法导航到另一个页面。这是什么?为什么调用 abort() 时 IE 不关闭连接?

I have multiple xmlHttpRequest on my page, and I am attempting to call the abort() method on them all. Works great in FF. IE, on the other hand does not do a darn thing. The connections do not close, and I am unable to navigate to another page until the requests complete. What is this? Why doesn't IE close the connections when abort() is called?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

征﹌骨岁月お 2024-08-30 13:42:21

我几乎从未放弃在 IE 中工作。我很累,不记得为什么 - 一些关于在进入 ReadyState 4 之前无法中止的事情(或者可能在中止时它更改为 ReadyState 4?)。不管怎样,Ajaxian 在其档案深处有一个解决办法:

http:// ajaxian.com/archives/reusing-xmlhttprequest-without-abort

I've almost never gotten abort to work in IE. I'm tired and can't remember why - something about not being able to abort until you're in readyState 4 (or maybe that it changed to readyState 4 when it aborts?). Either way, Ajaxian has a work around in the depths of its' archives:

http://ajaxian.com/archives/reusing-xmlhttprequest-without-abort

莫多说 2024-08-30 13:42:21

并行 Ajax 请求与 Apache 会话锁定


会话数据通常您的脚本终止后存储,但会话数据被锁定到防止并发写入 任何时候只有一个脚本可以对会话进行操作

例如,当将框架集与会话一起使用时,由于这种锁定,您将经历框架一一加载。 您可以通过尽快结束会话来减少加载所有帧所需的时间


所以你可以在 ajax 脚本中使用会话
session_start();(可能自动处理)紧接着(尽快)session_write_close();

session_write_close(); 将“结束”当前会话并存储会话数据。

但是: session_id() 仍然会提供正确的(当前)PHPSESSID,因此您只需执行 session_start( ) 在您需要的任何时候再次。


我在所有 ajax 脚本中以这种方式使用它来实现会话处理允许在所有浏览器中并行请求(带有中止)

Parallel-Ajax requests vs Apache-Session locking


Session data is usually stored after your script terminated, but as session data is locked to prevent concurrent writes only one script may operate on a session at any time.

When e.g. using framesets together with sessions you will experience the frames loading one by one due to this locking. You can reduce the time needed to load all the frames by ending the session as soon as possible.


So you can use sessions in ajax scripts with
session_start(); (maybe handled automatically) followed immediately (soon as possible) by session_write_close();

session_write_close(); will "end" the current session and store the session data.

But: session_id() will still deliver the correct (current) PHPSESSID so you're able to re obtain write access to the current session by simply doing session_start() again at any time you need it.


I use it this way in all my ajax scripts to implement session handling and allowing parallel request (with aborting) in all browsers

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文