2010-10-24 211 views
0

我正在写一个基本上调用PHP页面并请求一些信息的AJAX脚本。 PHP页面查询数据库。我想设置页面每5分钟进行一次呼叫,但我知道如何做的唯一方法是使用settimeout函数。我想知道这个settimeout函数是否持续运行,这会对页面的性能造成严重的影响吗?还有另外一种方法可以解决这个问题吗?Javascript SetTimeOut会影响页面性能吗?

回答

1

使用setInterval。他们应该呈现相同的结果(〜0表现损失),但是setInterval是显而易见的方式。

想一想Google Wave:他们会为您键入的每封信发送一个AJAX请求,但它一点都不慢,所以每5分钟发一个请求就什么都不是。

+0

三江源非常多。 – mcbeav 2010-10-24 06:58:55

+0

GMail以及检查新消息。想想Gmail聊天。更频繁。 – 2010-10-24 08:04:26

+1

我完全不同意,'setInterval'(主要)是邪恶的。例如,如果你的代码会中断,它就会堆积起来,永远不会结束。阅读这个来理解为什么你应该(几乎)总是在'setInterval'上使用'setTimeout':http://zetafleet.com/blog/why-i-consider-setinterval-harmful – peol 2010-10-24 08:59:23

1

我真的不是问题是setTimeout,也许这是你建立脚本的方式。

事实上,setTimeout大部分时间都是首选,因为setTimeout会等待脚本的执行,setInterval会在每个间隔中执行而无需等待。

请看看这里的底部:

https://developer.mozilla.org/En/Window.setInterval

If there is a possibility that your logic could take longer to execute than the interval time, it is recommended that you recursively call a named function using window.setTimeout.

+1

你是对的,但我怀疑他的AJAX请求需要超过5分钟才能完成:P – 2010-10-24 07:37:48