ajax致使Echarts不顯示餅圖數據、柱狀圖數據只顯示氣泡的問題。

一、ajax致使Echarts不顯示餅圖數據、柱狀圖數據只顯示氣泡的問題。ajax

  ajax的同步。這個同步的意思是當JS代碼加載到當前ajax的時候會把頁面裏全部的代碼中止加載,頁面出去假死狀態,當這個ajax執行完畢後纔會繼續運行其餘代碼頁面假死狀態解除。而異步則這個ajax代碼運行中的時候其餘代碼同樣能夠運行。
  jQuery的async:false,這個屬性。默認是true:異步;false:同步。    
  默認設置下,全部請求均爲異步請求。若是須要發送同步請求,請將此選項設置爲 false。
  注意,同步請求將鎖住瀏覽器,用戶其它操做必須等待請求完成才能夠執行。        chrome

  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預約義的數據是有的,報表正常分析了很久,記錄一下。方便之後查詢緣由。json

待續.....瀏覽器

相關文章
相關標籤/搜索