0

何千ものポイントをプロットする必要があります。おそらく、dojoチャートライブラリを使用すると50,000近くになります。それは動作しますが、それは間違いなく非常に遅く、ブラウザに遅れをとっています。より良いパフォーマンスを得る方法はありますか?

編集:

データにレンダリングフィルターを適用して解決しました。基本的に、ポイントが他のポイントとオーバーラップすると予想される場合、jsonソースによってfalseに設定される「render」と呼ばれる新しいアイテムパラメーターがあります。次に、私のDataSeriesは、render:trueであるすべてのポイントを照会します。このようにして、すべてのポイントを必要とする非ビジュアルソースのすべてのデータがまだ存在しますが、チャートはスムーズに実行されます。

擬似コード:

def is_overlapped(x, y, x_round, y_round)
    rounded_x = round(x, x_round)
    rounded_y = round(y, y_round)
    hash = hash_xy(rounded_x, rounded_y)

    if(@overlap_filter[hash].nil?)
      @overlap_filter[hash] = true
      return false
    end

    return true
end

x_roundとy_roundは、xとyの範囲によって決定できます。たとえば、range / 100

4

1 に答える 1

1

これはおそらくあなたが探している答えではないことを私は知っていますが、あなたは単にあなたがプロットしているポイントの数を減らすことを考えましたか?グラフの具体的な機能はわかりませんが、ポイントが多いグラフのほとんどは不要だと思います。オブザーバーは、そのレベルの詳細をで理解することはできません。

あなたの解決策は、JavaScriptではなくグラフ作成技術にある可能性があります。たとえば、ポイントの数を大幅に減らし、散布図の代わりに折れ線グラフを使用しながら、目的のターゲットに同様のレベルの情報を伝達することができます。

于 2011-08-11T14:06:42.073 に答える