この答えはあなた次第本当にあります。あなたは確かに、あなたが思っているようにクライアント側でcsvファイルの解析プロセスを毎回実行することができます。時間がかかるプロセスの場合は、サーバーにこの手順を実行し、結果をクライアントに送信するほうがよい場合があります。ここで
は)
1 ... クライアント側の周りにあなたの頭をラップするいくつかのシナリオです。これはあなたの考えです。サーバーはindex.htmlとdata.csvをクライアントブラウザーに送信します。データは解析され、クライアント側で処理されます。
長所:シンプルなサーバーサイドロジック。
短所:クライアントに多くの作業を施しました! (彼らはモバイルデバイスを使用していないと思う)。データはすべての要求に対してクライアント側で解析されます。
2)サーバーサイド。サーバーはdata.csvを解析し、結果をメモリーに保管します。サーバーは、要求に応じてindex.htmlと解析されたデータをメモリに送ります。
長所:クライアント側では処理されません。サーバー側での最小限の処理(1回解析)。
短所:サーバーメモリに格納されます。サーバーが起動するたびに再解析する必要があります。データの解析に時間がかかる場合を除き、これは重要ではありません。
3)サーバーサイド+ DB。サーバーはdata.csvを解析し、結果をデータベースにコミットします。サーバーは、要求に応じてindex.htmlと解析されたデータを送信します。
長所:クライアント側では処理されません。サーバー側での最小限の処理(1回解析)。
短所:上記のような単純な静的データセットを格納するためのデータベースは、過度のIMOのようです。
私はシナリオ#2が個人的に好きです(明らかでない場合)。これは私の意見です、あなたの決定に役立つことを願っています。
クライアントにサーバデータを渡すことについて、あなたの質問に答えるために...
これは、サーバー側で使用しているものに主に依存します。ノード/エクスプレス、ASP.Net MVCなど?
これには2つのシナリオがあると思います。
1)index.htmlは、バックエンドによって処理される静的ファイルです。この場合、ヒットマップデータを要求するためにページが読み込まれた後に、サーバーに戻ってくるファイルにjavascriptがあります。この呼び出しは、他のエンドポイントが再生される場所です。データが取得されたら残りの部分を推測することができます。それをヒートマップライブラリに渡してそれを実行します。あなたが言及したRESTエンドポイントは解析と操作を行い、JSON結果を返します。 index.html内のスクリプトはJQueryを使用して$ .get()を使用してサーバー上のそのエンドポイントに呼び出します。
2)index.htmlは静的ファイルではありません。代わりに、html(とjavascript)を生成するエンドポイントです。この1回の呼び出しにすべてを当てます。これは、CSVを解析して操作し(サーバーの起動時にまだ実行されていない場合)、HTMLのページとスクリプトタグと、すべてのjavascriptを含む応答を生成します。 javascript変数をデータと同じに設定します。ページが読み込まれると、変数内のデータをヒートマップライブラリに渡します。
あなたの考えは、シナリオ1ともっと一致していると思います。私は、この情報があなたをさらに混乱させるかもしれないと感じていますが、うまくいけばそれが役に立ちます。
総合的な回答ありがとうございます。 バウンディングボックス内の緯度、経度座標を返す別のRESTエンドポイントを定義しているので、サーバー側での処理が最適なオプションかもしれないと考えています(ユーザーがクライアント側で指定したマップ上のボックスを想像してください)。あなたはそのボックス内のIPアドレスのすべての座標をユーザーに戻したいと思う)。あなたの考えは? – newenthusiast
あなたは正しい考えを持っていると思います!エンドポイントは、ボックスの左上の左上の長さやボックスの右下の長さなど、クライアント側に描画されたバウンディングボックスの寸法を取ります。これらの入力を使用すると、すべてのIpv6座標をループして、ボックス内にあるものを返すことができます。これがあまりにも細かい場合には謝罪してください。私はそれを理解する楽しさを取り除くことが嫌です。 – Theo
ありがとう、これは役に立ちます! :) @テオ – newenthusiast