Rails应用程序中的Turbolink(JS)重载问题



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

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

您是否需要涡轮链接以获得性能?

一般来说,良好的网络缓存(304用于资产)、延迟和异步脚本等将导致浏览器的行为与启用Turbolinks时几乎相同。

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

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

希望这能有所帮助。

最新更新