检查turbolinks是否具有缓存以确定何时显示加载微调器

时间:2018-09-07 10:44:46

标签: javascript ruby-on-rails turbolinks

我正在使用Turbolink的Rails项目中工作。

当用户单击链接时,我希望能够检查Turbolinks是否具有该用户要访问的页面的缓存。如果未缓存,我想显示一个加载微调器。

我已经检查了文档,并调查了不同Turbolinks事件中的数据,但是我一直找不到解决方法。

有没有办法进行这项检查?

任何帮助将不胜感激。

2 个答案:

答案 0 :(得分:0)

我发现使用Turbolinks.controller.cache.snapshots给出了所有缓存快照的列表。

答案 1 :(得分:0)

您可以 Turbolinks.controller缓存中进行挖掘,但是由于没有记录,因此无法保证它会一直存在(例如,在下一个版本中)。更为惯用的方法可能如下:

document.addEventListener('turbolinks:click', function () {
  showSpinner()
})

document.addEventListener('turbolinks:load', function () {
  hideSpinner()
})

turbolinks:load对于已缓存的页面会立即发生,因此微调框将不可见。