結果が SlickGrid にレンダリングされる検索ページがあります。を実行するのは ajax 検索でonkeyup
あるため、検索が実行され、Slick.Grid インスタンスrender
が呼び出され、最初の非同期render
が完了する前に別の結果が返される可能性があります。同時に 2 つの呼び出しが行われrender
ないように、2 番目の ajax 要求が戻ってきたらすぐにイニシャルをキャンセルしたいと思います。render
例で編集:
alert
実行順序を追跡するために s を配置して、私がやっていることは次のとおりです。
function setupGrid() {
slickDataView = new Slick.Data.DataView();
slickGrid = new Slick.Grid(slickGridDiv, slickDataView.rows, slickGridColumns, slickGridOptions);
slickDataView.onRowsChanged.subscribe(function(rows) {
slickGrid.removeRows(rows);
slickGrid.updateRowCount();
slickGrid.render();
});
slickDataView.onRowCountChanged.subscribe(function(args) {
slickGrid.updateRowCount();
slickGrid.render();
});
}
function performSearch() {
jQuery.get('searchPage.php', {MODEL_ID: userInputField.val()},
function(results) {
slickDataView.beginUpdate();
alert(1);
slickDataView.setItems(results);
alert(2);
slickDataView.endUpdate();
}
);
}
setupGrid();
userInputField.keyup(function() { performSearch(); });
userInputField
テキスト フィールドに2 つの数字を立て続けに入力すると、次のようなアラートが順番に表示されます。
1
1
2