Проблема перезагрузки Turbolink (JS) в приложении Rails - PullRequest
0 голосов
/ 23 декабря 2018

Я работаю над приложением Rails 5.2 с установленной по умолчанию Turbolink.Я понимаю, что Turbolink не перезагружает все ресурсы при навигации по сайту, поэтому некоторые JS-компоненты сайта перестают работать, пока я не перезагружу страницу вручную.В моем примере раскрывающийся список навигации и кнопка «Сохранить» на странице редактирования сообщения не работают.Я попытался полностью удалить Turbolink из проекта, и это, похоже, решило проблему, но я знаю, что мне нужен Turbolink из соображений производительности на производстве.Насколько я понимаю, это причина, по которой turbolink по умолчанию поставляется с Rails после версии 4. Решение, которое я нашел в Интернете, заключается в добавлении этого кода ниже в мой код JS: document.addEventListener("turbolinks:load", function() { my_func(); })

У меня проблема с этимРешение в том, что я не знаю точно, как обернуть мой код этой строкой.Я работаю с темой Bootstrap, которая имеет 4 файла JS.Самый маленький из этих файлов имеет 200 строк и имеет различные функции.Как исправить проблему с Turbolink при использовании тем Bootstrap?Оборачиваете ли вы решение вокруг всего файла javascript?

1 Ответ

0 голосов
/ 26 декабря 2018

Вам нужны Turbolinks для производительности?

Как правило, хорошее веб-кэширование (304 для ресурсов), отсрочка и асинхронность для сценариев и т. Д. Приведут к тому, что браузер будет вести себя почти так же, как с включенными турболинками.

Но в целом, если ваша тема и / или начальный загрузчик (я ее не использовал) не имеет единственной функции инициализации, но каждый элемент инициализирует себя, то вы, вероятно, ожидаетегрубая поездка.

Я бы посмотрел предварительно проверенную версию темы (или документацию), чтобы узнать, есть ли общая функция инициализации, которую вы можете вызвать.

Надеюсь, это поможет.

...