Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/visual-studio-code/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 原型周期执行器不';t更新源_Javascript_Prototypejs - Fatal编程技术网

Javascript 原型周期执行器不';t更新源

Javascript 原型周期执行器不';t更新源,javascript,prototypejs,Javascript,Prototypejs,我有一个脚本,在数据库中有新条目时更新表。它从表中的最后一行提取一个时间,然后获取此后输入的所有条目 它第一次运行正常,它获取新条目并更新表。但是,当它第二次运行时,它将使用该初始时间戳,而不会检索刚刚从数据库中提取的当前最后一个条目 因此,PeriodicalExecuter函数似乎在页面启动时加载页面的html,但没有考虑任何异步更新,或者只是节省了初始时间。有什么办法可以解决这个问题吗 下面是一些代码: new PeriodicalExecuter(function() { n

我有一个脚本,在数据库中有新条目时更新表。它从表中的最后一行提取一个时间,然后获取此后输入的所有条目

它第一次运行正常,它获取新条目并更新表。但是,当它第二次运行时,它将使用该初始时间戳,而不会检索刚刚从数据库中提取的当前最后一个条目

因此,PeriodicalExecuter函数似乎在页面启动时加载页面的html,但没有考虑任何异步更新,或者只是节省了初始时间。有什么办法可以解决这个问题吗

下面是一些代码:

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以使其唯一。