3

ということで、私は zingchart API を使用してアプリケーションをビルドするのに非常に苦労しましたが、「setdata」や「showplot」などの特定の zingchart.exec アクションを使用すると、非常に深刻な遅延が発生することに気付きました。これらは異常に時間がかかっているようで、これらのメソッドを使用する代わりに何か方法があるかどうか、またはそれらの実行をスピードアップする方法があるかどうか疑問に思っていました. 状況を説明すると、私が使用した古いチャート作成 API では、目立たない時間でグラフの変更と更新が行われましたが、zingchart メソッドでは、チャートの実行と更新にそれぞれ 1 ~ 2 秒以上かかる場合があります。前もって感謝します。-b

4

1 に答える 1

4

ZingChart チームのマイクです。

ZingChart の API メソッドをまだチェックアウトしていない場合は、たくさんのメソッドがあります: http://www.zingchart.com/docs/api/api-methods/。ここで、ZingChart がその下でどのように機能するかについて少し技術的に説明します...

これらの API メソッドにはそれぞれ異なるレベルのチャート修正があり、いくつかは別のものより積極的です。

たとえば、メソッドを見てみましょうremovenode。このメソッド呼び出しは、指定されたプロットとノード インデックスからノードを削除するだけです。内部では、ZingChart は API 呼び出しの副作用を調べ、チャート上で何を再描画する必要があるかを判断します。ZingChart がチャートから 1 つのノードを削除できる場合もあれば、スケールを再描画する必要がある場合もあります。いずれにせよ、これは 1 つの領域に対する孤立した変更であり、ZingChart はこれにより、実行する必要がある計算の量を最適化できます。

次に、 などのより積極的な API メソッドを見てみましょうsetdata。この方法は非常に強力で、ユーザーはグラフ自体の任意の部分を変更できます。トレードオフは、パフォーマンスの低下です。ZingChart は変更を分離する領域がわからないため、チャート全体を再描画する必要があります。

ZingChart のパフォーマンスを向上させる最善の方法は、実行する必要があることに最も近い API メソッドを選択することです。-- そして、時には「ブルートフォース」を使わなければならないこともありますsetdata。ただし、存在しない API メソッドが必要な場合や、パフォーマンスを最適化する必要がある場合は、喜んで協力して問題を解決し、ライブラリの使いやすさを向上させるソリューションを実装します。これについては、support@zingchart.com にお問い合わせください。


別のメモとして、前回の S/O の質問「動的にスケール マーカーを追加していますか?」で提供した例から、Angular ディレクティブを使用していると思います。?

私が作成した angular ディレクティブには、チャートを変更する 3 つの方法があります。

  1. zc値
  2. zc-json
  3. zc-render

それぞれの方法には、パフォーマンスと機能の独自のトレードオフがあります。zc-valuesは ZingChart のを利用しsetseriesvalues、 をzc-json使用しますsetdata。このディレクティブは事実上、これらのメソッド呼び出しのラッパーであり、ZingChart が利用できるすべての API メソッド呼び出しを完全に利用しているわけではありません。したがって、バニラの ZingChart ライブラリよりも本質的にパフォーマンスが低くなります。ディレクティブの詳細を示すリソース: http://www.zingchart.com/blog/2015/03/05/zingchart-angularjs/

さまざまな API メソッドを受け入れるためにディレクティブをさらに拡張する必要がある場合は、喜んでプルリクエストを受け入れます。

于 2015-09-10T16:17:14.113 に答える