我有一个大表单并且在提交时我正在尝试使用jquery验证表单为$(“。form”)。validate()。form()和在IE 8上它需要大约20182ms并且在chrome上需要1800ms
这使应用程序无响应且速度慢。
有没有办法提高验证速度?
使用jquery $ .get方法加载表单内容,如下面的代码。
$.get(url, paramData, function (data) {
$("#eCheckList .content-body").html(data);
$.validator.unobtrusive.parse($(".eCheckList-section form"));
});
以下是保存表单的代码。
console.time("#Form Validation");
var isValid = $(".eCheckList-section form").valid();
console.timeEnd("#Form Validation");
if (isValid) {
$("#container").addClass("ui-loading");
var formData = $(".eCheckList-section form").serialize();
$.post(url, formData, function (response) {
});
}
以下是jsfiddle中的示例 - http://jsfiddle.net/w9Lq9/3/
作为jsfiddle - 我无法在IE8中测试上面的链接,但这是我测试的不同浏览器和Chrome性能最差的时间。
铬
ParseForm:3159ms
FormValidate:2839ms
IE 9
ParseForm:106ms
FormValidate:848ms
IE 11
ParseForm:172ms
FormValidate:1266ms
火狐
ParseForm:272ms
FormValidate:611ms
答案 0 :(得分:0)
如果没有看到完整的代码,就不可能肯定地说出你做错了什么。
但是,.validate()
方法通常仅用于初始化表单上的插件,并且只在页面加载时调用一次。
如果要触发表单的 test ,可以使用.valid()
方法。
$(".form").valid();
看看是否有所改善。