一、问题
项目某一个页面用的highcharts用来显示一张图表,第一次刷新正常,第二次就出来这个错。
二、解决问题过程
在网上找了很多同样是这个错误的解决方案。
第一:加载了highstock.js然后又加载了highcharts.js 重复加载了,如果你正在组合图表和stockchart,你只需要加载highstock.js文件。然而,正在做的项目中并不是重复加载了两个文件的问题,只是加载了一个highcharts.js。
第二:把引在二级页面单页面中的highchartsjs文件换到了主页面引用。这个好多网友都说可以解决,在项目中试了一次,还是不能解决。
最后:就开始看问题的根本。一个网友提供的答案:多次加载二级页面时造成highcharts的多次加载造成的命名空间的占用(链接:http://www.cnblogs.com/guzhouyuanying/p/6340220.html)。
三、解决方法
在这个二级页面,只让highcharts.js这个js文件加载一次,做一个单例。
if (!$.fn.highcharts) {
var script = document.createElement("script")
script.type = "text/javascript"
script.src = "${assetPath(src: 'js/plugins/layer/HighCharts/highcharts.js')}"
document.body.appendChild(script)
}