Turbolinks(经典)在页面上触发JS事件:fetch

时间:2016-12-14 17:46:18

标签: jquery browser-cache turbolinks

我正在构建一个Rails 4应用并使用Turbolinks Classic(还没有升级到Turbolinks 5)。

我想在加载新页面时向我的页面添加一个微调动画,所以在我的JS文件中我添加了:

$(document).on "page:fetch", ->
  $("#main").html("<div class='page-loader-container'><div class='spinner spinner-primary'></div></div>")

#main是我应用核心的容器。

从链接到链接时,这很有用; Turbolinks火了,旋转器取代了内容,当Turbolinks获得新内容时,它取代了所有内容。

但是,当我使用浏览器后退按钮时,会显示微调器,但缓存的HTML永远不会替换页面。

我查看了Turbolinks文档以及jQuery插件文档,但无法解决这个问题。

我尝试做的只是在Turbolinks实际获得新页面时执行我的微调器代码;从缓存加载页面时,我不应该需要一个微调器,因为它应该发生,因此用户不需要通知。

更新2016-12-14 13:40

当我使用Turbolinks.enableProgressBar();时,进度条按照我的预期运行:它在选择新页面时加载,但在加载缓存页面时根本不显示。我现在正在使用它,并且#34;工作&#34;。

然而,我想深入了解源代码,并了解他们如何处理进度条的事件,因为我认为这些是我想要用于我的事件。旋转器。

1 个答案:

答案 0 :(得分:0)

这个github页面在他的README文件中有一些很好的细节。我想知道这是否有助于特别是页面缓存部分:

https://github.com/turbolinks/turbolinks-classic#page-cache

我还认为Events表非常整洁。 (页面缓存上面的几个部分)