#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