最近在用Echarts实现一个动态点击事件,主要是在折线图中点击对应坐标点就能查看这个点的具体信息,然后在实现的时候需要读取json文件中的数据,尝试用getJson方法,因为我是循环读取的会产生数据混乱的问题,去网上查阅了一下,以下是解决方法:

1
2
3
4
5
6
7
$.ajaxSettings.async = false;// 同步执行
for(var i=0;i<20;i++){
$.getJSON(url, data, function(data){//具体措施 });
//后续代码
}
//主要就是在多个getJSON语句的前面先设置同步执行,在结尾再回复过来
$.ajaxSettings.async = true;//异步执行

我的理解是,因为getJSON的操作是异步执行的,你以为通过循环它会乖乖地按顺序读,但其实不是,可能在这层循环还没完的时候就开始下一个工作了,所以结果会有点混乱,通过将它设置为同步执行保证了顺序读,这样结果会准确,恢复异步执行是为了防止干扰到后面的程序

最后是写在js文件中忘记在html中添加jquery.min.js了,我是直接引用了某个CDN,记得要添加:

1
2
<script src="https://cdn.staticfile.org/jquery/1.10.2/jquery.min.js">
</script>

参考博客:
https://www.cnblogs.com/wangkongming/archive/2012/11/19/2777725.html