2

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

AJAX 中的轮询是什么意思?

目前有关此问题的任何链接或资源都会更加感激!!!

4

2 回答 2

5

setInterval设置一个重复计时器,setTimeout设置一个只触发一次的计时器。轮询是当您反复要求某事而不是等待被通知时。有时轮询是必要的,例如,如果无法获得通知——这在 Ajax 应用程序中经常出现。两者setIntervalsetTimeout可以用来实现轮询,这取决于你想要做什么。

在定期向服务器发出请求的情况下,建议使用setTimeout而不是setInterval. 在您执行请求的回调中,等待响应,然后使用setTimeout. 如果您使用setInterval并且请求延迟与间隔相当,那么您可能会冒响应乱序的风险。例如,计时器触发并且您发出请求,它需要比平时更长的时间,因此在它返回之前计时器再次触发,因此您发出新请求。现在您正在等待两个请求。在执行第二个请求之前等待第一个请求返回会更好。

于 2010-11-18T14:52:18.567 回答
1

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

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

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

查看http://www.w3schools.com/js/js_timing.asp

你可以使用这两个函数来实现一个轮询方案,但是它们肯定和轮询不一样。

于 2010-11-18T14:50:54.163 回答