2011-10-07 42 views
1

在我的web應用程序開始具有其中顯示新郵件等的數量爲我的用戶一個狀態。我使用Ajax.PeriodicalUpdater每60秒刷新一次。但PeriodicalUpdater正在初始化時進行第一次讀取,因爲數據在頁面加載時不新鮮。延遲的Ajax.PeriodicalUpdater

那麼,什麼是啓動頁面加載後60秒更新你的最佳做法?

我使用的是window.setTimeout來調用啓動更新的功能,但有更好的東西?

function statusbarUpdate(){ 
    new Ajax.PeriodicalUpdater({ 
    success: 'statusbar' 
    }, '/status', { 
    method: 'get', 
    frequency: 60, 
    decay: 1 
    }); 
} 
window.setTimeout("statusbarUpdate()", 1000 * 60) 

回答

1

Ajax.PeriodicalUpdater's source中沒有任何內容允許延遲啓動。

但是對於有點語法糖的最後一行可以neatened:

statusbarUpdate.delay(1000 * 60); 
+0

謝謝兩次:在源在那裏我可以看到,[線220](https://github.com/sstephenson /prototype/blob/1fb9728/src/ajax/periodical_updater.js#L220)是令我煩惱的:'this.start()'立即啓動調用,併爲['delay()'](http:// www .prototypejs.org/api/function/delay)方法,這對我來說是新的:-) – arnep

+0

再次查看源代碼,我意識到這裏沒有太多的代碼,你可以複製並修改它,馬上開始。 – clockworkgeek

+0

這將是一個選項,但隨後我必須在每個原型更新中維護該代碼(儘管我認爲這個函數不會有太大的改變)。 – arnep