Я использую версию turbolinks 5 и рельсы 5 и новейшие Highcharts. TПредотвратить выполнение предыдущего JavaScript с turbolinks и highcharts // LazyHighCharts
LazyHighCharts обеспечивает функциональные возможности для Turbolinks5 и обертывания диаграммы здания Javascript с
(function() { document.addEventListener("turbolinks:load", function() { //code window.chart_my = new Highcharts.Chart(options); }); })()
Но когда я навигации от страницы, на которой граф был загружен ранее с turbolink, я получил ошибку на вновь загруженной странице.
Uncaught Error: Highcharts error #13: www.highcharts.com/errors/13
Похоже, что все предыдущие JavaScript, который был загружен с "turbolinks:load"
являются пересматривают и вызывая highchart бросить ошибку, потому что в новой DOM нет ни одного элемента, к которому что highchart граф renderedTo.
Я пытался отвязать "turbolinks:load"
событие из документа, но оно не работает. Это все равно переоценивает.
мысль о решении раскошелиться LazyHighCharts, переписать layout_helper, так что браузер outputed после йот элемента, но это может привести к замедлению страницы, так что поток страницы будет
загружен-дом (график) оценки JS (синхронизации) -> загружен-дом (график) оценки JS (SYNC) ---> загружен-дом (график) оценки Js (SYNC) и т.д., и это приведет к замедлению загрузки страницы я догадка.
Возможно, у парней есть некоторое решение этой проблемы.