2011-10-07 44 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