Amcharts4 перестает отвечать на события изменения размера браузера

#amcharts4

#amcharts4

Вопрос:

Первый вызов для построения диаграммы выполняется нормально, но последующие вызовы chart = am4core.create(‘chartdiv’, am4charts.XYChart) приводит к тому, что диаграмма перестает отвечать на события изменения размера браузера.

Я добавил пример с веб-сайта amcharts здесь:

https://codepen.io/anon/pen/QPVpYX

Я протестировал это в Chrome, Firefox и Edge с тем же результатом.

Единственный способ, который, как я обнаружил, исправляет это — как показано в связанном коде, — это метод chart.dispose() , но для выполнения этого вызова для больших наборов данных требуется 30 секунд, и поэтому он нежизнеспособен!

 if (chart) {
  console.log('dispose start');
  var d = new Date().getTime();
  chart.dispose();
  console.log('dispose end '   (new Date().getTime() - d));
}
  

Комментарии:

1. Я не понимаю, почему вы создаете другую диаграмму на том же самом, <div> вам определенно придется запускать chart.dispose() на предыдущем графике, чтобы у вас не возникло никаких проблем. Но по какой-то причине удаление диаграммы может занять столько же времени, сколько время загрузки диаграммы, после чего новая диаграмма отлично работает даже при изменении размера.

2. Я перезаписывал его, потому что chart.dispose() занимает 30 секунд! Сборка заняла всего 5. Я также опубликовал на странице проблемы amcharts4 github. Они ответили, что в chart.dispose() есть ошибка, которая занимает все это время. Надеюсь, исправление скоро появится.

3. Потрясающе, спасибо за это. Вот проблема, о которой идет речь, если кто-нибудь еще столкнется с этой проблемой: github.com/amcharts/amcharts4/issues/1228