【问题标题】:Rails Turbolinks 5 causing causing ui flicker?Rails Turbolinks 5 导致 ui 闪烁?
【发布时间】:2016-10-05 02:41:18
【问题描述】:

我的 rails 应用程序在过渡期间闪烁。Turbolinks 似乎是罪魁祸首。有谁知道如何停止闪烁或为什么闪烁?

如果您访问下面的链接并单击任何登录按钮,您将复制我所遇到的情况。

奇怪的是,从 firefox 或 safari 访问它时没有问题。这只发生在最新版本的 chrome 和 Internet Explorer 上?所以我不确定这是否是浏览器的问题。

【问题讨论】:

  • 嘿@Paul Brunache,你在这方面有什么收获吗?
  • @rm-rf 我刚刚在我的应用程序 js 文件中删除了 turbolinks 声明。我意识到我已经为每个项目都这样做了,因为正在发生的事情是 turbolinks 正在尝试重新绘制,而 flash 是 chrome 上的一个错误,已经打开了一段时间,他们似乎不会修复。我开始使用 react 和 react 路由器。

标签: ruby-on-rails-5 turbolinks-5


【解决方案1】:

闪烁发生在 turbolinks 用新内容覆盖缓存之前加载缓存。我可以通过放置(在布局的<head> 中)以下代码来解决此问题:

<meta name="turbolinks-cache-control" content="no-cache">

以上代码禁用 turbolinks 缓存功能。没有缓存 == 没有 UI 闪烁。但是,现在使用浏览器中的后退或前进按钮将进行网络调用(仍然通过 Turbolinks

查看示例代码:https://github.com/DockerOnRails/todomvc-turbolinks


还有另一个选项可以在使用Turbolink.visit 之前清除缓存(这会导致 UI 闪烁):通过调用Turbolinks.clearCache(),这将与禁用缓存相同,但您可以保留在其他地方使用缓存。

【讨论】:

  • 您可以在此处了解有关缓存的更多信息:github.com/turbolinks/turbolinks
  • 真的不能在任何有图片的页面上使用缓存吗?这似乎有点极端?缓存非常棒,我觉得因为页面包含图像而将其丢弃很可惜?
  • 我不确定,可能有一种方法可以在重写之前验证内容是否已实际更改。在回答这个问题时,我没有看到使用我测试过的 turbolinks 版本的方法。不过从那以后我就没有使用过 turbolinks。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-03-24
  • 2012-07-23
  • 2011-10-23
  • 1970-01-01
相关资源
最近更新 更多