我正在尝试实现一个简单的"comet" ajax长轮询机制(如这里所述)。
问题是,我不知道如何告诉浏览器的行为,如果它已经完成加载页面,虽然它有一个待处理的请求在后台运行。(l
一种方法是使用web套接字,但这是一种过度的方式。
啊,老"末日悸动者":-)
还有一个问题可能值得一读。它指的是iframe,但它很可能仍然相关。
当我在开发Kwwika时,我写了一篇关于throbber的文章,但我得出了一个不幸的结论,那就是100%摆脱它并不是很容易。
我认为WebSockets实际上并不过分。使用XMLHttpRequest等的Comet并不是web浏览器根本支持的标准。换句话说,它们不会不遗余力地使创建长寿命HTTP请求变得超级容易。WebSockets是一种标准化的方法,所有浏览器都在缓慢地支持它。我希望它们能进入IE10。现在你可以看看像web-socket-js这样的东西,它可以确保99%的浏览器支持WebSocket。WebSockets还提供更低的延迟和更少的资源密集的任何类型的轮询解决方案。
需要异步调用ajax http://api.jquery.com/jQuery.ajax/
好的,我已经设法解决了这个问题。"厄运悸动"的问题是由于我在文档下执行了ajax请求而引起的。准备如下函数:
(){$ $(函数。ajax……});
这个解决了:
$(function() {setTimeout(connect, 1000);});