使用Turbolinks定期在Rails 4中重新加载页面

时间:2015-12-02 11:23:42

标签: javascript ruby-on-rails-4 turbolinks

我有一个页面显示一些状态信息。此页面在没有任何用户输入的PC上运行,需要每隔几分钟刷新一次。

我可以使用meta标签刷新它,但这似乎很粗糙。它强制刷新所有资产并导致丑陋的闪烁。通过更智能的页面加载,Turbolinks在其他任何地方都做得很好。我可以通过自动刷新来使用它吗?

我很感激有关如何让这项工作更好的建议。

2 个答案:

答案 0 :(得分:2)

这是我最近在Turbolinks 5下使用的内容。必须添加一些变量,以便在用户浏览页面等时停止重新加载。

<script>
  if(!window.reloadTimer) {
    var SECONDS = 30;
    window.reloadTimer=setTimeout(function(){
      console.log("Reload!");
      window.reloadTimer=undefined;
        Turbolinks.visit(location.toString(),{action: "replace"});
    }, SECONDS * 1000);
    document.addEventListener("turbolinks:visit",function() {clearTimeout(window.reloadTimer);window.reloadTimer=undefined;});
  }
</script>

答案 1 :(得分:0)

试试这个:

$(document).on('ready page:load', function() {
    var SECONDS = 5;
    setTimeout(function(){
        Turbolinks.enableTransitionCache(true);
        Turbolinks.visit(location.toString());
        Turbolinks.enableTransitionCache(false);
    }, SECONDS * 5);
});