2016-10-20 10 views
0

私はHapi/React/Sequelize/MySQLスタックを使用しています 私はクライアントを持っています。要求に基づいて、サーバーは1または最大500kの結果を送信することがあります。これらの結果は、オブジェクトを含む配列です(オブジェクトごとに15個のプロパティ)。大量のリストを送信することは、メモリに多くの時間を要するため、オプションではありません。私はまた、結果セットの計算を行う必要があります。 私はチャンクでデータを送信すると思っていました。おそらくそれぞれ10k(3秒)です。 私は2つのアプローチを考えることができます。大きなデータセットを送信しています。最適なアプローチ

1つのアプローチ(ロングポーリング):

  1. 私は、サーバー上の最初の要求を行い、サーバーは私に製品のIDのみを返します。
  2. たとえば、100kidを取得します。クライアントはAJAXリクエストを10kチャンクで送信します。 100Kに達すると、結果がクライアントに表示されます。

アプローチ二(ソケット):

  1. クライアントが要求を行います。ソケットが開きます。
  2. サーバーは、ソケット経由で10kのチャンクを送信します。 ソケットが多量のトラフィックを処理できますか? 10kのサイズは約300kbです。

別の方法がありますか?

答えて

1

私は残りの部分はまだそれがメインディスプレイを追加してロードし、そう:)

EDIT: pseudocode 
listOfProductsIDArray = get id of products; 
itemsPerLoad = 10; 
mainDisplay = array; 
for loop (index = listOfProductsIDArray/itemsPerLoad){ 

send AJAX request with index; 
if(AJAXrequest is success) 
     procees results 
     mainDisplay appends results from mysql 
} 

mysql side:: 
select * from products limit AJAXindex,itemsPerload 
return results 
+0

上の例を持っている可能性があります?しながら、それはそれの結果を表示し、計算した後、その後のすべての10K以下のチャンクのための並列要求を示唆していますか:) –

+0

編集されており、受け入れられた場合は投票を残してください:) –

関連する問題