博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

Highcharts error #16: www.highcharts.com/errors/16 js 单例

Posted on 2019-06-02 17:07  和风细雨汪汪  阅读(1245)  评论(0编辑  收藏  举报

 

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

<script type="text/javascript">
//单例模式引入highcharts
if (!$.fn.highcharts) {
var script = document.createElement("script");
script.type = "text/javascript";
script.src = "${pageContext.request.contextPath }/common/js/Highcharts-4.2.3/js/highcharts.js";
document.body.appendChild(script);
}
</script>