0

入力されたSQL文字列を渡し、それに応じてデータ行を返すjQueryAjax呼び出しがあります。これらは非常に大量のデータになる可能性があるため、スキップするように呼び出しを変更しました。レコードのパラメータ。これは問題ありませんが、私が本当に望んでいるのは、すべてのデータを一覧表示することです。1回の呼び出しで大量のデータが返される可能性があるため、分割したいと思っていました。

私がやりたいプロセスは次のとおりです。

  • データを処理して行をどこかに保存するためのAjax呼び出し
  • 最初の25行を返す
  • divに25行を追加
  • 次の25を取得
  • 次の25行をdivに追加します
  • 追加する行がなくなるまでなど

誰かが以前にこのようなことをする必要がありましたか、またはAjaxを介して大量のデータを取得する方法について何か提案がありますか?参考までに、ASP.NetWebMethodを使用しています。

4

1 に答える 1

1

AJAXコールバック関数でより多くの行をフェッチできます。すでにそこにある「ページ」の数を追跡する必要があります。

var options = { rows : 25, offset : 0, url : 'irrelevant' },
fetchRows = function(){
    $.get( options.url, { rows : options.rows, offset : options.offset  }, render );
    options.offset++;
},
render = function( data ){
  /* perform the rendering  here */

    if( data.length == options.rows ){ /* assuming `data` is an array of rows */
        fetchRows();
    }
};

fetchRowsAJAXリクエストを送信renderし、コールバック関数として設定します。次に、前のリクエストが1つの「ページ」に収まる限り多くの行を返した場合に再度render呼び出します(この例では、最後のページの行数は25行未満であるため、フェッチを続ける必要はありません)。fetchRows

于 2013-01-13T22:11:32.393 に答える