我使用highcharts創建大型熱圖。它工作正常,但是當有大量記錄生成熱圖時。在這種情況下,它會凍結broswer,並且broser會顯示警報等待或結束頁面。我在Stackoverflow上看到過其他一些答案,它建議將計算算法改爲可以迭代調用的東西,然後使用timeout(),但是我不能在我的場景中使用它,我該如何讓高輪渲染迭代?使用highcharts創建大型熱圖凍結瀏覽器
如何防止它凍結瀏覽器?
我使用highcharts創建大型熱圖。它工作正常,但是當有大量記錄生成熱圖時。在這種情況下,它會凍結broswer,並且broser會顯示警報等待或結束頁面。我在Stackoverflow上看到過其他一些答案,它建議將計算算法改爲可以迭代調用的東西,然後使用timeout(),但是我不能在我的場景中使用它,我該如何讓高輪渲染迭代?使用highcharts創建大型熱圖凍結瀏覽器
如何防止它凍結瀏覽器?
Highcharts有很多循環來呈現數據,所以我發現的唯一可能性是減少了加載的數據量。加載10MB +(通常已經在3-4MB)的數據導致幾乎每個瀏覽器都凍結。
我有一個類似的問題與大型數據集(15個數據點10個月系列的月份)。我在查看整個數據集時所做的是服務器端數據聚合(4小時平均值)。上變焦我通過Ajax,但只是爲了與afterSetExtremes事件可視區域內的實際15分鐘的數據點:
events: {
afterSetExtremes: 'function(event) {
if(typeof event.userMin == "undefined")
{ var a={"min": null, "max": null}; }
else
{ var a={"min": event.min, "max": event.max}; }
$.ajax({url:"/user/analyze/intval", method: "POST",
data: a, dataType: "json"}).success(function(json)
{ //update series here }'
}
我使用typeof事件,以確定是否使用了變焦復位(再得到初步彙總數據)
我覺得類似的東西也應該可以解決你的問題。問問你自己,這有助於獲得這麼多的數據嗎?即使原始數據被嚴重聚合(因子4-6),通常可見差異也接近於零。
你能提供演示嗎? – Brewal 2014-09-29 12:21:50
爲什麼你不能在你的場景中使用它? – 2014-09-29 12:27:26
@Brewal:我正在嘗試創建演示 – 2014-09-29 12:30:32