在JavaScript中创建永久循环

时间:2011-02-16 22:39:20

标签: javascript infinite-loop circular-reference

我写了一个Adobe AIR应用程序,其行为如下:

用户登录并使用setTimeout创建永久循环。此循环执行HTTP请求,将返回的json md5字符串与全局变量进行比较。如果这两个值不同,则使用新内容更新dom。当用户执行诸如发送回复或删除消息的另一个动作时,执行静默更新并且这“暂停”循环。它基本上就像一个简单的电子邮件客户端。

我这样做的方式不可靠并导致内存泄漏。我打算从头开始重写它,我不想最终和我现在在同一条船上。如果有人能举例说明他们将如何做或给我任何建议,我将不胜感激。提前谢谢!

1 个答案:

答案 0 :(得分:0)

您不应该经常轮询,而是使用称为“长轮询”或“COMET”的技术。基本上,您发送的请求将保持打开状态,直到由于更新的数据等或超时而产生响应。收到一些回复后,您立即发送新请求。

这样可以节省大量带宽和服务器负载,因为它可以大幅减少发送的请求数量。