10

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

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

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

4

1 回答 1

24

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

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

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

参见示例代码:https ://github.com/DockerOnRails/todomvc-turbolinks


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

于 2017-09-03T18:36:27.747 回答