setInterval&的区别轮询?

时间:2010-11-18 14:47:53

标签: ajax dom dwr

我想知道setInterval() (or) setTimeout() in DOMpolling in ajax之间的区别。主要区别是什么?如果两者都相同,为什么用两个不同的名称来识别?

AJAX中的轮询是什么意思?

此问题的任何链接或资源都会更加值得欣赏!

2 个答案:

答案 0 :(得分:5)

setInterval设置重复计时器,setTimeout设置仅触发一次的计时器。轮询是指您反复询问某些内容而不是等待通知。有时轮询是必要的,例如,如果无法通知 - 这通常是Ajax应用程序中的情况。 setIntervalsetTimeout都可用于实现轮询,具体取决于您要执行的操作。

如果定期向服务器发出请求,建议使用setTimeout代替setInterval。在回调中,您执行请求,等待响应,然后使用setTimeout设置新计时器。如果您使用setInterval并且请求延迟与间隔相当,那么您可能会面临无法响应的风险。例如,计时器触发并且您发出请求,它需要比平常更长的时间,因此在它再次触发计时器之前,所以您发出新请求。现在您正在等待两个请求。在做第二次请求之前等待第一个请求回来会更好。

答案 1 :(得分:1)

轮询是指您定期ping服务器以查看是否已准备就绪。用户可能发出的请求将花费一些未指定的时间,但是等待的时间太长,因此您每隔x秒轮询一次服务器以查看结果是否准备就绪。

setTimeout在指定的时间间隔后执行函数。

setInterval每次都重复执行一个函数。

结帐http://www.w3schools.com/js/js_timing.asp

您可以使用这两个函数来实现轮询方案,但它们肯定与轮询不同。