13

我有一个问题; 在我的 ASP.NET MVC Web 应用程序中,必须在页面和所有控件都加载后进行某些验证。

在 Javascript 中,我使用下面的代码行来调用方法:

window.load = JavascriptFunctionName ; 

我的团队中有人问我没有使用上面的代码行,而是使用 JQuery 来做同样的事情:

 document.attachEvent("onreadystatechange", function() {
        if (document.readyState === "complete") {
            CheckThis();

        }
    });

请帮助我了解两者之间的区别。当我通过在两个 jQuery 中保持警报进行测试时,检查首先执行并调用CheckThis函数,因为window.load它需要一些时间并在它之后执行。请建议

4

3 回答 3

9

window.load- 这在加载所有内容(包括图像)时运行。

document.ready- 当 DOM 准备好时运行,所有元素都在页面上并准备好执行,但不一定加载图像。

这是 jQuery 的做法document.ready

$(function() {
  CheckThis();
});

如果您还想让它发生在 上window.load,请执行以下操作:

$(window).load(function() {
  CheckThis();
});
于 2010-03-16T19:25:37.957 回答
4

window.load当您的页面完全加载(包含图像、横幅等)document.readyState时触发,但在 DOM 准备好时触发

于 2010-03-16T19:26:08.143 回答
3

ready 处理程序在 DOM 创建后立即执行,无需等待加载所有外部资源。

由于您使用的是 jQuery,因此更简洁、与浏览器无关且广泛使用的语法是:

$(function(){  
   CheckThis();
}); 
于 2010-03-16T19:26:20.903 回答