防止使用turbollinks和highcharts执行以前的JavaScript //LazyHighCharts
Prevent from executing previous JavaScript with turbolinks and highcharts //LazyHighCharts
我使用的是turbollinks 5和rails 5版本以及最新的Highcharts。T
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"
是重新评估,并导致高图抛出错误,因为在新的DOM没有元素,高图图形是渲染到。
我试图从文档中解绑定"turbolinks:load"
事件,但它不起作用。它会重新求值。
考虑解决方案分叉LazyHighCharts,重写layout_helper,所以javascript是在dom元素后输出,但这会减慢页面,所以页面流将是
loaded-dom(图)评估js (sync)-->loaded-dom(图)评估js (sync)--->loaded-dom(图)评估js (sync)等等,它会减慢页面加载速度。
也许这里的人有解决这个问题的办法。
对lazy_high_charts进行pull请求
document.addEventListener("turbolinks:load", function(e) {
// code
e.target.removeEventListener(e.type, arguments.callee);
});
- 为什么不't Javascript对我的输入值进行了一些重新检查
- 创建一个类似链接的按钮,并通过Javascript函数打开一个新的弹出窗口
- 将函数的上下文应用于javascript变量
- 使用php或javascript从facebook相册URL中删除多余的部分
- 正在添加'X'按钮,在文本字段旁边使用javascript
- 如何在JavaScript中将字符串转换为函数引用
- 模糊事件的Javascript测试
- Javascript更改图标
- 如何将HTML id分配给元素,以及如何将JavaScript应用于元素
- 如何使用WCF服务和javascript表单post上传.doc文件
- javascript结合了数组和字典
- 这是什么 ==- javascript 运算符
- 从javascript创建一个列表
- 无法在通过jQuery的ajax加载的页面中执行javascript
- Javascript:selenium Web驱动程序isDisplayed()不工作
- Isn't javascript regex lazy?
- 为什么在javascript中的模块模式中实现Lazy函数时范围会发生变化
- javascript lazy loading in android hybrid app
- Lazy Load vs Combine/Minify vs CDN Javascript (AngularJS)
- 我不知道当我使用'lazy loading'JavaScript