【发布时间】:2016-04-03 16:39:32
【问题描述】:
如果我在做像 isNumeric 这样的简单检查,响应时间很好,但是一旦我开始做更复杂的事情(检查数据库是否值有效),它很快就会变得太慢而无法使用。 IE。 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 中验证功能的响应时间?
【问题讨论】:
标签: jquery ajax optimization handsontable