Я использую Stimulus with Turbolinks и мне нужно динамически импортировать много js в контроллеры.
Код, который я использую в main.js
:
window.Turbolinks.start()
window.application = window.Stimulus.Application.start()
const IsPreviewPage = () => document.documentElement.hasAttribute('data-turbolinks-preview')
const divID = 'about_graphic'
window.application.register("about", class extends window.Stimulus.Controller {
async initialize () {
console.log("About, initialize()")
if (IsPreviewPage()) {
return
}
const about = await import("./about.js")
about.WriteInDiv()
}
})
ПРОБЛЕМА
Если я впервые перехожу на /about
, появляется Date.now()
.
Затем я перехожу на /index
.
Когда я возвращаюсь на страницу /about
, Date.now()
перезагружается (вы можете увидеть мигание после страницы предварительного просмотра, выпущенной Turbolinks).
Как можно избежать перезагрузки div?
В этом я не использую динамический импорт, и он не перезагружается: https://glitch.com/edit/#!/quintessential-reptile
>>> ОБНОВЛЕНИЕ
Мигает (перезагружается div), только если я использую:
async initialize () {
console.log("About, initialize()")
if (IsPreviewPage()) {
return
}
await import("./about.js")
WriteInDiv()
}
const WriteInDiv() = () => {...}
Почему?