我想知道setInterval() (or) setTimeout() in DOM
和polling in ajax
之间的区别。主要区别是什么?如果两者都相同,为什么用两个不同的名称来识别?
AJAX中的轮询是什么意思?
此问题的任何链接或资源都会更加值得欣赏!
答案 0 :(得分:5)
setInterval
设置重复计时器,setTimeout
设置仅触发一次的计时器。轮询是指您反复询问某些内容而不是等待通知。有时轮询是必要的,例如,如果无法通知 - 这通常是Ajax应用程序中的情况。 setInterval
和setTimeout
都可用于实现轮询,具体取决于您要执行的操作。
如果定期向服务器发出请求,建议使用setTimeout
代替setInterval
。在回调中,您执行请求,等待响应,然后使用setTimeout
设置新计时器。如果您使用setInterval
并且请求延迟与间隔相当,那么您可能会面临无法响应的风险。例如,计时器触发并且您发出请求,它需要比平常更长的时间,因此在它再次触发计时器之前,所以您发出新请求。现在您正在等待两个请求。在做第二次请求之前等待第一个请求回来会更好。
答案 1 :(得分:1)
轮询是指您定期ping服务器以查看是否已准备就绪。用户可能发出的请求将花费一些未指定的时间,但是等待的时间太长,因此您每隔x秒轮询一次服务器以查看结果是否准备就绪。
setTimeout在指定的时间间隔后执行函数。
setInterval每次都重复执行一个函数。
结帐http://www.w3schools.com/js/js_timing.asp
您可以使用这两个函数来实现轮询方案,但它们肯定与轮询不同。