在IE 8中,Jquery Validate Form非常慢

时间:2014-03-18 11:01:34

标签: internet-explorer-8 jquery-validate

我有一个大表单并且在提交时我正在尝试使用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

1 个答案:

答案 0 :(得分:0)

如果没有看到完整的代码,就不可能肯定地说出你做错了什么。

但是,.validate()方法通常仅用于初始化表单上的插件,并且只在页面加载时调用一次。

如果要触发表单的 test ,可以使用.valid()方法。

$(".form").valid();

看看是否有所改善。