0

処理に時間がかかるGETでjqGridをロードまたはリロードし$("#myJqGrid").trigger("reloadGrid");、最初のプロセスが呼び出されている間に後続の呼び出しを行うと、2番目の呼び出しでGETリクエストが発行されることはありません。それらをキューに入れるか、キャンセルする方法はありますか? または、これを処理するための他のアイデアはありますか? キューに入れられた一連のリクエストでユーザーを混同したくありません。ユーザーは、作成したばかりのリクエストに対する応答を受け取っていると考えていますが、それは最初のリクエストの結果です。

初期ロード時に jqGrid が GET を作成するのを無効にするクリーンな方法があれば、これは私にとってそれほど問題になるとは思いません。

4

1 に答える 1

1

jqGrid の初期ロードを防止する最も簡単な方法はdatatype: 'local'、初期化時に使用することです。本当に必要な場合は、サーバーからのデータでグリッドを埋めるdatatype必要'json''xml'ありsetGridParamますreloadGrid

$("#gridId").jqGrid('setGridParam', {datatype: 'json'}).trigger('reloadGrid');

jqGrid には、 Ajax リクエストをキューに入れる方法がありません。本当に多くの連続した Ajax リクエストを行う必要がある場合は、次のリクエストを 内で行う必要がありますloadComplete。たとえば、リクエストの配列を作成し、loadComplete配列が空かどうかをテストできます。空でない場合は、コールバック.trigger('reloadGrid')内で呼び出し、配列のshiftメソッドを呼び出すことができます。setTimeout

ほとんどの場合、Ajax キューを実際に実装する必要はありません。たとえば、例として答えを参照してください。

于 2012-04-09T16:10:02.973 に答える