如果我正在进行像isNumeric这样的简单检查,那么响应时间就可以了,但是一旦我开始做任何更复杂的事情(如果值有效则检查数据库)那么它很快就变得太慢而无法使用。即。 900行为45秒,25k行为20分钟(然后网格出现错误)
以下是我目前正在尝试实施的一种检查示例:
var BadArray = [];
var GoodArray = [];
isValid = function (value, callback) {
var bad = $.grep(BadArray, function (e) { return e.Key == value; });
if (bad != null && bad.length === 0) {
var good = $.grep(GoodArray, function (e) { return e.Key == value; });
if (good != null && good.length === 0) {
var errMsg;
var data =
$.ajax({
//ajax call setup here
success: function (response) {
if (response == "active") {
GoodArray.push(value);
callback(true);
}
else {
BadArray.push({ Key: value, RspMsg: response });
errMsg = response;
}
}
});
if (errMsg != null) {
$("#ValErrors").empty();
$.each(BadArray, function (index, value) {
$("#ValErrors").append("Key " + value.Key + ": " + value.RspMsg + "<br />");
});
callback(false);
}
}
else {
callback(true);
}
}
else {
callback(false);
}
};
我还能做些什么来改进这个具体的例子吗? 有没有关于如何改善Handsontable中验证功能的响应时间的一般提示/技巧?
答案 0 :(得分:0)
好吧,如果你有900行,每行10列,那就是9,000个ajax调用!也许您可以做的只是验证使用此方法更改的单元格,并且当您需要验证所有单元格时,有一个单独的端点,它接受整个数据数组,检查每个单元格,并返回所有未验证单元格的数组