0

我正在开发一个默认安装了 Turbolink 的 Rails 5.2 应用程序。我了解 Turbolink 在浏览网站时不会重新加载所有资产,因此该网站的一些 JS 组件停止工作,直到我手动重新加载页面。在我的示例中,编辑帖子页面上的导航下拉菜单和保存按钮不起作用。我已经尝试从项目中完全删除 Turbolink,这似乎解决了这个问题,但我知道出于生产中的性能原因我需要 Turbolink。据我了解,这就是 turbolink 在版本 4 之后默认使用 Rails 的原因。我在网上找到的解决方案是将以下代码添加到我的 JS 代码中: document.addEventListener("turbolinks:load", function() { my_func(); })

我对这个解决方案的问题是我不知道如何用那一行来包装我的代码。我正在使用具有 4 个 JS 文件的 Bootstrap 主题。这些文件中最小的有 200 行,并具有各种功能。使用 Bootstrap 主题时如何解决此 Turbolink 问题?您是否将解决方案包装在整个 javascript 文件中?

4

1 回答 1

0

需要Turbolinks 来提高性能吗?

通常,良好的 Web 缓存(资产为 304)、脚本的延迟和异步等将导致浏览器的行为与启用 Turbolinks 几乎一样。

但总的来说,如果您的主题和/或引导程序(我没有使用它)没有单个 init 函数,但每个元素都在初始化自己,那么您可能会遇到困难。

我会查看主题(或文档)的美化版本,看看是否有可以调用的通用 init 函数。

希望这可以帮助。

于 2018-12-25T23:32:33.067 回答