2016-09-19 36 views
1

瀏覽器崩潰的具體數據,谷歌圖表

var timeType = "year", data = JSON.parse('{"cols":[{"label":"Year","type":"string"},{"label":"Scans successful","type":"number"},{"label":"Scans failed","type":"number"},{"label":"Scans declined","type":"number"}],"rows":[{"c":[{"v":0,"f":2016},{"v":5},{"v":0},{"v":3}]},{"c":[{"v":1,"f":2015},{"v":0},{"v":0},{"v":0}]},{"c":[{"v":2,"f":2014},{"v":0},{"v":0},{"v":0}]},{"c":[{"v":3,"f":2013},{"v":0},{"v":0},{"v":0}]},{"c":[{"v":4,"f":2012},{"v":0},{"v":0},{"v":0}]},{"c":[{"v":5,"f":2011},{"v":0},{"v":0},{"v":0}]}]}'); 
 
    
 
google.charts.load('current', {'packages': ['corechart']}); 
 
google.charts.setOnLoadCallback(chartReady); 
 

 
function chartReady() { 
 
    chartData = new google.visualization.DataTable(data); 
 
    chart = new google.visualization.ComboChart(document.getElementById('comboMonthScan')); 
 
    chart.draw(chartData, { 
 
    seriesType: 'bars', 
 
    chartArea: { 
 
     'width': '90%', 
 
     'height': '80%' 
 
    }, 
 
    legend: { 
 
     'position': 'top' 
 
    } 
 
    }); 
 
}
<div id="comboMonthScan" style="width:100%; height:400px;"></div> 
 

 
<script type="text/javascript" src="https://www.gstatic.com/charts/loader.js"></script> 
 
<script type="text/javascript" src="https://code.jquery.com/jquery-1.12.4.min.js"></script>

警告:運行該代碼段可能會崩潰您的瀏覽器!

數據根據console.log輸出有效。對於不同的數字,它可以工作並顯示預期的結果,同時顯示這個子集立即凍結UI,使CPU超過50%,並開始消耗RAM,直到其被強制關閉。我已經created a GitHub issue,但它看起來像存儲庫不是由谷歌維護。

爲什麼問題存在,我該如何使它工作?我是否使用可視化api崩潰的關鍵字?

回答

2

我自己找到了解決方案:其他值是有效的,因爲作爲文本標籤(f)我使用了一個字符串。我想填寫一年,它被認爲是數字。這似乎會導致瀏覽器崩潰,因爲Google Charts無法將此數字視爲字符串。

+0

感謝您的跟進。當提供數字而不是字符串時,問題是無限循環。這個問題將在下一個版本中避免。 – dlaliberte