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

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

Я использую 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 aboutD3 = await import("./about.js")
    aboutD3.loadChart()
  }
})

ПРОБЛЕМА

Если я впервые прихожу к /about, когда появляется диаграмма.

Затем я перехожу к /index.

Когда я возвращаюсь на страницу /about, диаграмма d3 перезагружается сама собой (вы можете увидеть мигание после страницы предварительного просмотра с помощью turbolinks).

Как мне избежать перезагрузки?

В этом я не использую динамический импорт, и он не перезагружается: https://glitch.com/edit/#!/mud-shop

...