Jquery性能优化2----Validate中的增加rule
在检索结果表格中Input需要验证时,由于是行数是动态的,所以要动态的增加验证规则,怎么加最快呢。
1.下面的方法在20条数据时,如果每条有4个Input时,需要1秒左右的时候
functionaddRules1(str,tableId){
for(vari=0;i<str.length;i++){
varrecord=str[i];
varitems=$("#"+tableId).find("input[name^="+record.name+"][name!="+record.name+"]");
for(varj=0;j<items.length;j++){
varitem=items[j];
$(item).rules("add",record.rule);
}
}
}
2.但是用下面的方法基本就很快,由于不需要操作DOM
functionaddRules2(str,tlength){
varrules=[];
for(vari=0;i<str.length;i++){
varr=str[i];
for(varj=0;j<tlength;j++){
rules.push(appendIndex(r.name,j));
rules.push(":");
rules.push(JSON.stringify(r.rule));
rules.push(",");
}
}
rules=rules.join("");
rules=rules.substr(0,rules.length-1);
rules=eval('({'+rules+'})');
varsettingRules=$('form').validate().settings.rules;
$.extend(settingRules,rules);
}