私は3年前に書かれたデータ視覚化ウェブツールを書き直しています。それ以来、ブラウザのJavaScriptエンジンが大幅に高速化したので、ジョブの一部をサーバーからクライアントに転送することを考えていました。
このページでは、データは表とマップ(またはチャート)で視覚化されます。同じデータを使用していますが、方法が異なるため、表示用のデータを準備する2つのアルゴリズムが異なります。
ユーザーがデータドロップダウンセレクター(3メインに応じて3メイン+ 2サブ)を操作するたびに、3つのajaxリクエストが送信され、phpがすべての作業を実行し、必要なデータのみを送り返します(テーブル/xmlのhtmlでグラフ)非常に小さな応答で、パフォーマンスの問題はなく、javascriptは応答を追加し、変更イベントを追跡するだけでした。
したがって、パフォーマンスは問題ありませんでしたが、基準を変更するたびに、ユーザーはajaxの応答を待つ必要があります:/
今私の考えは、メインの3つの基準の組み合わせが変更されるたびに、1つのajaxリクエストでjsonオブジェクトを送り返し、次にjavascriptでajaxsuccessのテーブルとチャート/マップにデータを入力し、次に2の変更時にも送信することです。サブ基準。
私の躊躇は、サーバーによって送信されるjsonの構造、ペイロードのバランスに関するものです。
実際、生データからデータを表示するために必要なjson構造を作成するために必要なアルゴリズムが1つしかない場合、追加の処理なしでjavascriptが処理できるように、phpでデータをこのオブジェクトに処理する必要があります。しかし、2つあります。
それで
phpにデータを処理させて2つのオブジェクト(1つはテーブル用/もう1つはチャート用)を作成すると、json応答のサイズが2倍になり、クライアント側のメモリ使用量が増加します。この2つのオブジェクトには同じデータが含まれているため、このアプローチは好きではありません。構造が異なり、冗長性が悪いのではないでしょうか。
生のオブジェクトを送信し、javascriptに何を表示し、クライアントに多くの仕事を与えているかを検索させる場合-これはすべてのサブ基準の変更でも行われます(または、ajaxsuccessですべてのjsonオブジェクトを一度作成して準備ができているこの下位基準の変更の場合?)-ここでは、古いブラウザ/小さなRAMを使用しているユーザーの心配はほとんどありません...
(未処理の生のjsonオブジェクトは、基準に応じて3kbから12kbの間、500から2000レコードの間で異なります)
私は最善のアプローチを見つけることができていません...
したがって、この単一の生データから複数の構造化オブジェクトへのジョブの場合、生データを処理するphp(応答サイズを増やして冗長データを送信する)またはjavascript(javascriptペイロードを増やす)がありますか?
ご意見ありがとうございます