Javascript 原型周期执行器不';t更新源
我有一个脚本,在数据库中有新条目时更新表。它从表中的最后一行提取一个时间,然后获取此后输入的所有条目 它第一次运行正常,它获取新条目并更新表。但是,当它第二次运行时,它将使用该初始时间戳,而不会检索刚刚从数据库中提取的当前最后一个条目 因此,PeriodicalExecuter函数似乎在页面启动时加载页面的html,但没有考虑任何异步更新,或者只是节省了初始时间。有什么办法可以解决这个问题吗 下面是一些代码:Javascript 原型周期执行器不';t更新源,javascript,prototypejs,Javascript,Prototypejs,我有一个脚本,在数据库中有新条目时更新表。它从表中的最后一行提取一个时间,然后获取此后输入的所有条目 它第一次运行正常,它获取新条目并更新表。但是,当它第二次运行时,它将使用该初始时间戳,而不会检索刚刚从数据库中提取的当前最后一个条目 因此,PeriodicalExecuter函数似乎在页面启动时加载页面的html,但没有考虑任何异步更新,或者只是节省了初始时间。有什么办法可以解决这个问题吗 下面是一些代码: new PeriodicalExecuter(function() { n
new PeriodicalExecuter(function() {
new Ajax.Request(
'#{url}&since_ts=' + $$('#posts tr:last-child td.description')[0].innerHTML.match(/Posted at: (\\d{4}-\\d{2}-\\d{2} \\d{2}:\\d{2}:\\d{2})/)[1],
{asynchronous:true,
evalScripts:true,
parameters:'authenticity_token=' + encodeURIComponent('#{form_authenticity_token}')
}
)
}, 60)
我是javascript新手,非常感谢您的帮助
谢谢 我以前没有使用过Prototype,所以这是一个猜测,但它可能只是缓存调用,因为它默认获取。尝试以下参数是您在url后的调用
{
asynchronous:true,
method: 'post',
evalScripts:true,
parameters:'authenticity_token=' + encodeURIComponent('#{form_authenticity_token}')
}
我发现问题不在于PeriodicExecutor函数,而在于我的选择器语句。所以我所要做的就是找到另一种方法来访问表中的最后一个tr元素
$$('#posts tr td.description').last().innerHTML.match(/Posted at: (\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2})/)[1]
很简单,但它总是你最后看到的东西。这很可能是真的。尝试将“+新日期()”添加到URL以使其唯一。