2011-05-29 98 views
2

我已經setInterval的使用jQuery實現更新受保護的頁面內一個div。當這部分網站的會話到期時,用戶將被帶回到網站的公共部分。如果用戶單擊刷新該頁面的鏈接,則只會發生此操作。setInterval的問題

是我遇到的問題是,粗心的用戶不註銷和setInterval繼續嘗試更新的div從而在Apache的一個巨大的訪問日誌文件。 (每天> 12Mb)setInterval繼續嘗試更新,因爲即使會話已死,頁面也不會刷新,所以setInterval一直在繼續。

有沒有辦法在一定時間後殺死的setInterval?說12個小時左右。

+0

當用戶離開頁面時javascript不再運行 – Ibu 2011-05-29 07:39:14

+0

只需在代碼中添加一些驗證 – Ibu 2011-05-29 07:40:21

+0

這就是整個問題,他們很少離開它,JavaScript繼續嘗試使用setTimeout更新div。 – jim 2011-05-29 07:40:30

回答

1

是有,setTimeout函數返回的timerId,您可以使用通過調用clearTimeout殺計時器。然而,setTimeout只出現一次,當用戶離開頁面時,它們會自動取消。 (你是否使用框架,因爲否則這不應該是一個問題)

我建議使用較少的詳細方法,並依靠AJAX和會話上下文來檢測用戶何時不再活動並簡單地註銷它們自動。

+0

@John,我很好奇,是@ user713170你的邪惡雙胞胎或什麼的? :) – 2011-05-29 07:43:47

+0

嘿約翰,謝謝。這是我看到你的建議的問題。這個需要更新的div本質上是全局的,並且適用於受保護部分中的所有頁面(如果該網站)。如果它在一個頁面上,我可以做你的建議。 – jim 2011-05-29 07:45:06

+0

@Frédéric,我想知道同樣的事情。 – jim 2011-05-29 07:45:35