我有一个搜索页面,其结果呈现在 SlickGrid 中。这是一个执行的 ajax 搜索onkeyup
,因此可以执行搜索,render
调用 Slick.Grid 实例,并在第一个异步render
完成之前返回另一个结果。我想render
在第二个 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
当我在文本字段中快速连续键入两个数字时,我会按此顺序收到以下警报:
1
1
2