我知道手機有足夠的資源可供使用。這不是我確切的問題。爲什麼chartjs在移動瀏覽器上滯後頁面?
澄清更多;我在同一臺設備上使用了amCharts
和chartjs
。
- AmCharts有2個複雜的圖表,有很多數據 - 超過900條記錄。
- Chartjs帶有1個圖表和非常簡單的數據 - 比60條記錄更少。
amCharts
流暢運行,但chartjs使得頁面滾動斯塔特,它落後於非常明顯,有些時候顯示頁面空白的部分爲第二-excuse我確切的數字的1/4左右。
顯然,這不是一個數據集的問題,還有如何在每個庫的作品有很大的不同。我能找到的最大的一個是amChart
使用SVG,而chartjs
使用html Canvas元素。
- 這種差異真的能成爲問題的根源嗎?或者是
chartjs
只是未針對移動設備進行優化? - 如果是這樣,是否有任何方法可以克服這一點?
解決方案:由於問題更多的是「事業」而不是「修復」,我沒有提出這個作爲一個答案。我們已經忘了它,但幾乎是一個重要的規則:「在滾動問題的情況下,強制GPU加速。」大多數現代瀏覽器都可以這樣做,並且它非常簡單,強制執行任何轉換,刻度等),在三維空間中:
body *:not(svg) {
transform: translate3d(0, 0, 0);
-webkit-transform: translate3d(0, 0, 0);
-moz-transform: translate3d(0, 0, 0);
-ms-transform: translate3d(0, 0, 0); /*only in IE10*/
}
- 來源:answers from this question。
- 隨着離子,這將打破導航欄,所以使用
ion-content
- 或任何較小容器 - 而不是body
。 - 看起來它會打破SVG因此
*:not(svg)
。 - 測試在
ios 8.3
和android 6
。
AmCharts是不是免費的封閉源代碼的項目,這就是爲什麼我要在這其中使用'chartjs'。 – Zahema