2010-10-24 111 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