【发布时间】:2012-01-18 07:20:41
【问题描述】:
我正在开发一个实现长轮询的应用程序,因为我希望用户在收到通知后立即收到通知。我有这部分工作,但我还需要使用 javascript 函数对其进行扩展,该函数每 20 秒向服务器发送一次“心跳”。
我的问题:如何在不完全中断代码 20 秒的情况下执行此操作(以便在计数时仍执行其他 javascript),有没有办法为此使用第二个连接?因为我不希望在向用户发送心跳时中断我的长轮询。
有什么想法吗?
【问题讨论】:
-
一个超时时间为 20000 毫秒的计时器如何,在完成服务器异步请求后,再休眠 20000 毫秒?
-
如果客户端中断了 http 连接,你的服务器肯定会注册这个。你应该能够赶上这个事件。
-
@bennedich:不要认为连接关闭时会产生事件,我不知道服务器如何知道它。
-
@DorinDuminica:我不能让它休眠 20000 毫秒,因为异步连接应该一直可用..
-
@Sled:好的。
setTimeout或setInterval应该能够不时地发送一个异步请求 (XMLHttpRequest) 而不会中断您的其他代码。
标签: javascript ajax multitasking long-polling heartbeat