使iFrame加载速度更快,以避免验证错误

Imm*_*tal 5 html javascript iframe jquery

问题陈述:

我有一个.NET用户控件,我在里面使用了iFrame.我在页面上有多个实例(可以是任意数字)的控件(其中包含iFrame).每次控制状态改变时,我必须加载所有控件.该控件有一些必填字段.

我有一个导航到另一个屏幕的按钮,因为每次加载所有控件时,所有控件都需要相当长的时间才能加载.用户正在尝试完成所有必填字段并单击下一个按钮,即使用户已完成所有必填字段,并且控件(使用iframe)未完全加载,也会在此实例中生成验证错误.

注意:以上所有内容都是JavaScript,而不是服务器端.

我尝试了什么:

  1. 我尝试显示一个模态div,直到它加载,但我显然无法捕获确切的加载时间,可能会点击下一个按钮.

  2. 我尝试在验证功能上超时,但由于加载不是确定的,它偶尔会工作.

  3. 我尝试使用计数器来查看加载了多少控件以检查总控件,然后只允许验证功能触发,再次加载它的确定方式,没有帮助.

我知道这可以通过不同的方式完成,但由于所付出的巨大努力和时间,我们必须采用现有方式,并且必须解决问题.有人可以建议任何指针/解决此问题.

Imm*_*tal 0

我把这个修好了。我相信修复是一种躲避,但我不知道任何其他方法。

我采用了上面提到的方法3。有一个 1ms 的超时,并且计数器在该超时内递增,即

setTimeout(function() {
   counter++;
}, 1);
Run Code Online (Sandbox Code Playgroud)

我的验证代码上还有一个计数器,将其延迟 1 毫秒,并检查计数器是否等于所有可用控件的条件,如果不再次验证,直到条件为假。否则继续。

    function validate() {
        if (counter != total number of frames) {
            setTimeout(function() {
                validate();
            }, 1);
            return false;
        }
...
}
Run Code Online (Sandbox Code Playgroud)

感谢大家的投入,这很有帮助。希望这将是解决类似问题的最后手段。