我想知道setInterval() (or) setTimeout() in DOM和polling in ajax之间的区别。主要区别是什么?如果两者是相同的,为什么要用两个不同的名字来标识?
AJAX中的轮询是什么意思?
任何关于这个问题的链接或资源现在都会更受欢迎!
发布于 2010-11-18 22:52:19
setInterval设置重复计时器,setTimeout设置只触发一次的计时器。轮询是指您反复请求某件东西,而不是等待通知。有时,轮询是必要的,例如,当无法得到通知时--在Ajax应用程序中经常出现这种情况。setInterval和setTimeout都可以用来实现轮询,具体取决于您想要做什么。
在定期向服务器发出请求的情况下,建议使用setTimeout而不是setInterval。在回调中,您执行请求,等待响应,然后使用setTimeout设置新的计时器。如果您使用setInterval,并且请求延迟与时间间隔相当,那么您可能会遇到响应顺序混乱的风险。例如,计时器触发,而你发出一个请求,它花费的时间比平时稍长一些,所以在它返回之前,计时器再次触发,所以你发出了一个新的请求。现在您正在等待两个请求。在执行第二个请求之前,最好等待第一个请求返回。
发布于 2010-11-18 22:50:54
轮询是指您定期对服务器执行ping操作,以查看是否有准备就绪的内容。用户可能已经发出了一个请求,这将花费一些未指定的时间,但是等待的时间太长了,所以您每隔x秒轮询服务器一次,看看结果是否准备好了。
setTimeout在指定的时间间隔后执行函数。
setInterval每次重复执行一个函数。
查看http://www.w3schools.com/js/js_timing.asp
您可以使用这两个函数来实现轮询方案,但它们绝对不同于轮询。
https://stackoverflow.com/questions/4215996
复制相似问题