【发布时间】:2010-12-20 03:00:48
【问题描述】:
我正在使用基于this page 的脚本标签长轮询技术来实现 Comet。
一个问题(我认为没有解决方案)是“厄运的颤抖者”——浏览器继续将文档显示为“正在加载”,并让工具栏上的“停止”按钮处于启用状态。这是有道理的,因为文档 仍在加载中,虽然它并不理想,但我想我可以忍受它。
不过,第二个问题是,如果用户实际上单击了“停止”,那么浏览器将停止加载我的脚本标签,我必须依靠超时来重新启动 Comet。这意味着如果我的超时时间是 20 秒,那么在用户单击停止后,页面可能会在 20 秒内不更新。我的问题是:有什么方法可以检测他们何时这样做?我可以检测到他们何时使用 onkeydown 事件按下了转义键,但如果他们使用工具栏按钮或菜单项停止加载,则无法检测到。
该解决方案需要在 Firefox 3.5 和 Chrome 3.0 中运行。
【问题讨论】:
-
我很好奇如果在 DOM 加载(或最坏的情况下,onload)后将相关脚本添加到 DOM,您是否仍然会得到“厄运的颤抖”。
-
我能问一个简单的问题吗?得到检测后你想做什么流程?
-
S.Mark - 我想重新提交请求,就像发生超时一样。无眼 - 你是对的,如果我在 onload 中这样做,就没有厄运的颤抖!结合 onkeydown 技巧来检测 Escape 我认为这可以解决问题。把它放在一个答案中,这样我就可以给你一些代表。 :)
标签: javascript ajax events comet