echarts重复加载

news/2024/7/19 12:54:14 标签: jsp, echarts, js

       最近项目中用到 echarts,我们从数据库中得到数放到echarts中展示,一开始都是请求后直接放入数据,展示。没有问题,后来我们要求利用echarts根据图上的每一次点击事件,局部更新请求后台的数据,然后再展示,就不行了,非要点击事件,触发两次才可成功。

jsp>jsp 上的div (其中仅有style 和 id l两个属性):

<div style="display:inline-block;height: 400px;width:100%" id="chart08">
            </div>

js代码:

function chart() {
	var chart8 = echarts.init(document.getElementById("chart08"));
	chart.showLoading({
		text : '正在努力的读取数据中...'
	});
	option= {
		title : {
			text : 'XXXXXXX量',
			y : '0px'
		},
		tooltip : {
			trigger : 'axis'
		},
		legend : {
			data : def,
			y : '30px'
		},
		dataZoom : {
			show : true,
			start : 90,
			end : 100
		},
		toolbox : {
			show : true,
			orient : 'vertical',
			feature : {
				magicType : {
					show : true,
					type : [ 'line', 'bar' ]
				},
				restore : {
					show : true
				},
				saveAsImage : {
					show : true
				}
			}
		},
		calculable : true,
		xAxis : [ {
			type : 'category',
			data : []
		} ],
		yAxis : [ {
			type : 'value',
			axisLabel : {
				formatter : '{value} %'
			}


		} ],
		series : [ {
			symbol : "none",
			name : def[0],
			type : 'line',
			symbol : 'circle',
			smooth : true,
			data : []
		}, {
			symbol : "none",
			name : def[1],
			type : 'line',
			symbol : 'circle',
			smooth : true,
			data : []
		}, {
			symbol : "none",
			name : def[2],
			type : 'line',
			symbol : 'circle',
			smooth : true,
			data : []
		}, {
			symbol : "none",
			name : def[3],
			type : 'line',
			symbol : 'circle',
			smooth : true,
			data : []
		}, {
			symbol : "none",
			name : def[4],
			type : 'line',
			symbol : 'circle',
			smooth : true,
			data : []
		} ]
	};

}


在页面加载时就完成数据请求,展示的页面没有问题。


但是后来我们要求加了一个按钮,实现动态局部刷新。于是产生了一开始是成功的,如上图所示:

但是如果再次的局部请求,就会出现空白:


然后不知为什么,找了半天,两次操作操作但结果不相同,的原因才找到,我通过浏览器的编译功能一步一步的debug模式下调试发现,option 要加入的div 属性有变化,(我用的google浏览器,个人觉得比较好用,F12 调试功能,找到Console 在旁边的数字列上打上桩,按F10 或F11 进行调试 js页面上的信息)。


315 行有错误信息,为了方便调试将其改为:

var div_ = document.getElementById("chart08");
chart8 = echarts.init(document.getElementById(div_));

在浏览器中点进 div_ 中查看其中的赋值和属性情况,图像展示出来之后F12 查看div_其中的内容:



发现与第一段代码段 id="chart08" 的div ,属性值有了变化,多出现了一个_echarts_instance_ 的属性,这难免让人怀疑是不是由它搞得鬼。


	
var chart8 = null;
	var div_ = document.getElementById("chart08");
	div_.removeAttribute("_echarts_instance_");
	chart8 = echarts.init(div_);



将 _echarts_instance_属性删除掉,再次执行,发现可以运行的很好了。点击一次出现一次。


结束语:虽然问题解决了,但是真正为什么会出现这种现象还是不太清楚,我在出图 和 不出图 两次运行上 每次查看div_ 其中的内容,没有发现前后两次的不同之处。也是没有向大家深入说明的原因。

还有遇到问题要善于利用工具,君子善假于物也。第一次写博文,错误之处在所难免,敬请高手指教。









http://www.niftyadmin.cn/n/886291.html

相关文章

js动态创建和删除div

研究了一下js的动态生成div功能。特此一记&#xff1a; <script type"text/javascript" > var i1; function cDiv(){ var oDivdocument.createElement("div"); oDiv.style.border"1px solid black"; oDiv.style.width"500px"; o…

springmvc DispatcherServlet和拦截器详解

1&#xff0c;程序实例 把程序贴下来&#xff1a;web.xml <servlet> <!--既然DispatcherServlet 写在这说明 DispatcherServlet也是servlet--><servlet-name>mvc</servlet-name><servlet-class>org.springframework.web.servlet.DispatcherServ…

springmvc 拦截器 与 servlet filter比较

为了讲解filter 和interceptor之间的区别&#xff0c;我会从 作用范围&#xff0c;作用原理&#xff0c;作用效果来说明两者之间的关系。 springMVC拦截器&#xff1a; 作用范围&#xff1a;拦截的目标只是controller &#xff0c;也就是处理器&#xff08;handler&#xff0…

web项目的实时监控-思路

今天&#xff0c;做了一个用户登陆后&#xff0c;实时监控后台数据的任务&#xff0c;整整搞了一天&#xff0c;&#xff08;环境是 mybatis、spring、springmvc&#xff09;。上午想搞一个定时线程&#xff0c;在用户的登陆后就执行&#xff0c;然后从后台执行该线程&#xff…

mybatis批量insert到Oracle数据库

&#xff08;1&#xff09;使用mybatis的foreach语法&#xff1a; private static void listinsert() {EjsonDecoder el new EjsonDecoder().unbare();List<Map> listnew ArrayList<Map>();SqlSession sessionSqlSessionUtil.sf.openSession();long startSystem.c…

Elasticsearch的distinct项查询(去重查询)

网上找了去重的方案&#xff0c;自己研究了一下&#xff1a; GET cars/transactions/_search { "size" : 0, // 表示搜索出来的文档数为0个&#xff0c;也表示不关心文档内容只要聚合结果。 如果为 1 &#xff0c;就会搜索出1个文档。 "aggs" :…

springdata elasticsearch aggregation 操作

这段日子在搞 springdata 操作 elasticsearch 其中使用聚合操作&#xff0c;特此一记&#xff1a; 下面是https://github.com/spring-projects/spring-data-elasticsearch/tree/5.x 的spring-data-elasticsearch 项目的&#xff1a;ElasticsearchTemplateAggregationTests代码…

jstorm storm 入门demo

jstorm和storm比较jstorm 是阿里巴巴开源的基于storm采用Java重写的一套分布式实时流计算框架&#xff0c;使用简单&#xff0c;特点如下&#xff1a; 1&#xff0c;开发非常迅速: 接口简单&#xff0c;容易上手&#xff0c;只要遵守Topology&#xff0c;Spout&#xff0c;Bolt…