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

时间:2015-05-01 02:30:00

标签: javascript jquery html iframe

问题陈述:

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

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

注意:以上所有内容均采用JavaScript,而非服务器端。

我尝试了什么:

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

  2. 我尝试在验证功能上暂停,但由于加载不是明确的,因此偶尔会有效。

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

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

1 个答案:

答案 0 :(得分:0)

我修好了这个。我认为修复是一种躲闪,但我不知道其他任何方式。

如上所述,我采用了方法3。超时1ms,计数器在该超时时间内递增,即

setTimeout(function() {
   counter++;
}, 1);

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

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

感谢大家的投入,它帮了很多忙。希望这将成为类似问题的最后解决方案。