Turbolinks, Stimulus, динамический импорт (file.js) мигает, перезагружает div - PullRequest
0 голосов
/ 21 сентября 2019

ВОСПРОИЗВОДСТВО: https://glitch.com/edit/#!/salty-savory

Я использую 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() = () => {...}

Почему?

...