• ajax导致Echarts不显示饼图数据、柱状图数据只显示气泡的问题。


    1、ajax导致Echarts不显示饼图数据、柱状图数据只显示气泡的问题。

      ajax的同步。这个同步的意思是当JS代码加载到当前ajax的时候会把页面里所有的代码停止加载,页面出去假死状态,当这个ajax执行完毕后才会继续运行其他代码页面假死状态解除。而异步则这个ajax代码运行中的时候其他代码一样可以运行。
      jQuery的async:false,这个属性。默认是true:异步;false:同步。    
      默认设置下,所有请求均为异步请求。如果需要发送同步请求,请将此选项设置为 false。
      注意,同步请求将锁住浏览器,用户其它操作必须等待请求完成才可以执行。        

      1 var data1={ "result": [
      2         {value: 21145381, name: "数量1"},
      3         {value: 8186053, name: "数量2"},
      4         {value: 316698, name: "数量3"},
      5         ]
      6 };
      7 
      8 //柱状图,data1是json格式传进去的
      9 function barChart(data1, chart, name) {
     10 
     11     /* var dataList = data1.result;
     12     var xlabel = [];
     13     var yvalue = [];
     14     $(dataList).each(function(i, item) {
     15         xlabel.push(dataList[i].name);
     16         yvalue.push(dataList[i].value);
     17     }); */
     18 
     19     //console.log(xlabel);
     20     //console.log(yvalue);
     21 
     22     var xlabel_2 = ["数量1", "数量2", "数量3"];
     23     var yvalue_2 = new Array();
     24     var applies = new Array();
     25     var url = 'dataxxxAction!findDataxxx.action';        
     26     $.ajax({
     27         type : 'POST',
     28         url : url,
     29         dataType : 'json',
     30         async : false,//ajax同步
     31         success : function(data) {
     32             applies = data.result;
     33             var length = applies.length;
     34             //......处理操作
     35             }
     36         }
     37     });
     38 
     39     console.log(xlabel_2);
     40     console.log(yvalue_2);
     41 
     42     // 柱状图
     43     var memoryOption = {
     44         tooltip : {
     45             trigger : 'axis',
     46             axisPointer : { // 坐标轴指示器,坐标轴触发有效
     47                 type : 'shadow' // 默认为直线,可选为:'line' | 'shadow'
     48             },
     49             formatter : function(params) {
     50                 var relVal = params[0].seriesName + "<br/>";
     51                 relVal += params[0][1] + ' : ' + params[0].data + "<br/>";
     52                 return relVal;
     53             },
     54             position : [ 3, 3 ]
     55         },
     56         grid : {
     57             x : '85',
     58             y : '30',
     59             x2 : '20',
     60             y2 : '30',
     61             borderWidth : '0'
     62         },
     63         legned : {
     64             borderColor : 'rgb(18,60,112)',
     65         },
     66         xAxis : [ {
     67             type : 'category',
     68             data : xlabel_2,
     69             axisTick : {
     70                 alignWithLabel : true
     71             },
     72             axisLabel : {
     73                 textStyle : {
     74                     color : 'rgb(164,176,191)',
     75                     fontSize : '10'
     76                 }
     77             },
     78             splitLine : {
     79                 show : false,
     80             }
     81         } ],
     82         yAxis : [ {
     83             type : 'value',
     84             axisLabel : {
     85                 textStyle : {
     86                     color : 'rgb(164,176,191)',
     87                     fontSize : '13'
     88                 }
     89             },
     90             splitLine : {
     91                 show : false,
     92             }
     93         } ],
     94         series : [ {
     95             name : name,
     96             type : 'bar',
     97             data : yvalue_2,
     98             barWidth : '30',
     99             itemStyle : {
    100                 normal : {
    101                     color : (function() {
    102                         var zrColor = require('zrender/tool/color');
    103                         return zrColor.getLinearGradient(0, 400, 0, 300, [
    104                                 [ 0, 'rgb(96,188,227)' ],
    105                                 [ 1, 'rgb(96,188,227)' ] ])
    106                     })(),
    107                     label : {
    108                         show : true,
    109                         formatter : function(params) {
    110                             if (params.data == '80.01') {
    111                                 params.data = '80';
    112                             }
    113                             var relVal = params.data;
    114                             return relVal;
    115                         },
    116                         textStyle : {
    117                             fontSize : '16'
    118                         },
    119                         position : 'top'
    120                     }
    121                 }
    122             },
    123         } ]
    124     };
    125     chart.setOption(memoryOption, true);
    126 }

    我是这样搞的报表,但是呢,一开始使用的异步,这就出现这个问题了,首先它是代码一起运行,导致运行了初始值0,报表只显示了气泡,不显示报表数据,搞了一天才发现,使用chrome的f12分析,开始都没有意识到,先执行了一遍是空的,但是又执行了一遍数据的,最后还是没有数据填充报表。最后才发现问题,使用了ajax同步才搞定。使用json预定义的数据是有的,报表正常分析了好久,记录一下。方便以后查询原因。

    待续.....

  • 相关阅读:
    PHP 中 parent、self、static、$this 的区别 & 后期静态绑定详解
    PHP中for和foreach背后发生了什么和关于迭代器的理解
    PHP中this,self,parent三个关键字
    PHP文件指针操作
    php中Session使用方法详解
    关于PHP日期时间的主要函数
    php获取checkbox复选框的多个选项的内容
    PHP中的11个魔术方法总结:__construct,、__destruct、__call等
    PHP类的自动加载机制实现方法分析
    C#学习笔记(二)
  • 原文地址:https://www.cnblogs.com/biehongli/p/10648841.html
Copyright © 2020-2023  润新知