我知道手机有足够的资源可供使用。这不是我确切的问题。为什么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