Я сделал этот этот небольшой пример , чтобы помочь вам перечислить список в виде фрагментов с setTimeout
.
function enumerate(list, groupSize, callback, complete, debug){
var iterations = 0;
for (var i = 0; i < list.length; i+=groupSize, iterations++){
(function (group, index, isLast){ // new context
setTimeout(function(){
for (var j=0; j < group.length;j++){
debug && console.log(group[j]);
callback.call(group[j], (index+j+1));
}
isLast && complete.call();
}, 1);
})(list.slice(i, i+groupSize), i, (list.length < i+groupSize));
}
debug && console.log('iterations: ' + iterations);
}
Назовите это так:
var trs = $('#tablex tr'),
errorMsg = '',
onItem = function(){
var aRecord = $("td:eq(1)", this).attr("innerText");
var curECD = $("td:eq(7)", this).find(':text').val().trim();
if (curECD != "" && isDate(curECD) == false)
errorMsg += "Date for " + aRecord + " is invalid<br/>";
},
complete = function(){
console.log(errorMsg);
};
enumerate(trs, 5, onItem, complete);