私は、携帯電話には余裕がないことを理解しています。これは私の正確な質問ではありません。なぜchartjsがモバイルブラウザでページを遅らせるのですか?
もっと明確にするために;同じデバイスにamCharts
とchartjs
を使用しました。
- AmChartsには、900レコード以上の多数のデータを持つ2つの複雑なチャートがありました。
- Chartjsは1つのチャートと非常に単純なデータで、60レコード未満です。
amCharts
スムーズに実行されますが、chartjsは、ページのスクロールSTATERを作る、それは非常に著しく遅れていると、いくつかの倍の約1/4の私の正確な数-excuse秒のためのページとして空白の部分を示しています。
明らかにこれはデータセットの問題ではなく、各ライブラリの仕組みに大きな違いがあります。私が見つけることができる最大のものはamChart
がSVGを使用し、chartjs
がhtml Canvas要素を使用するということでした。
chartjs
はモバイル向けに最適化されていませんか?ソリューション:質問は、「修正」よりも「原因」の詳細ですので、私は答えとしてこれを提出しませんでした。
が、私はそれについて忘れてしまったが、tは、ほぼ強打のルールだ:「スクロール問題が発生した場合には、力のGPUアクセラレーションを」最近のほとんどのブラウザはそれを行うことができ、それはただの変換を行う、強制することは非常に簡単です(翻訳3D空間で、スケール、など):
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。
- ionicの場合、これはnavbarを破壊するので、の代わりに
ion-content
またはより小さなコンテナを使用してください。 - SVGを破るように見えるので、
*:not(svg)
。 ios 8.3
およびandroid 6
で試験した。
AmChartsはクローズドソースプロジェクトでは無料ではありません。このため、私はこのプロジェクトで 'chartjs'を使いたいのです。 – Zahema