Ответ 1
jquery-turbolinks не поддерживает Turbolinks 5, так что решение устарело Теперь.
Если вы хотите отключить кэширование turbolinks, просто добавьте эту мета на свою страницу;
<meta name="turbolinks-cache-control" content="no-cache">
Ну, как говорится в названии более или менее. Я использую gem Turbolinks в моем приложении Rails, и у меня проблема с кнопкой "браузер назад". Мои javascripts отлично работают, пока я не вернусь в свой браузер, а затем перестанет работать. Если я нажму ссылку в своем приложении или перезагрузите страницу, она снова начнет работать.
Ant идеи, как это исправить?
jquery-turbolinks не поддерживает Turbolinks 5, так что решение устарело Теперь.
Если вы хотите отключить кэширование turbolinks, просто добавьте эту мета на свою страницу;
<meta name="turbolinks-cache-control" content="no-cache">
Два решения для Turbolinks Classic:
Установите кеш в 0, чтобы страницы не кэшировались с использованием истории HTML5.
Turbolinks.pagesCached(0);
Другим решением является прослушивание события "страница: восстановление" и вызов метода инициализации. Это последнее решение более эффективно.
document.addEventListener("page:restore", function() {
app.init();
});
Вы можете найти ответ в следующем обсуждении проблемы turbolinks. Для меня сработало следующее решение - удалить элемент, инициализированный JS (в моем случае выбрал выпадающий список), используя следующее:
document.addEventListener("turbolinks:before-cache", function() {
$('.chosen-select').chosen('destroy');
})
Вместо того, чтобы полностью отключить turbolinks-caching
во всем приложении (делая интеграцию turbolinks совершенно бесполезной), как подробно описано в предыдущих ответах, вы можете просто отключить турболинки только для тех частей страницы, которые доставляют вам проблемы с JS
<div id="div_using_JS_functions" data-turbolinks='false'>
.
.
.
</div>