Window.load和document.readyState之间有什么区别

bat*_*adi 12 asp.net-mvc jquery javascript-events

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

在javascript中我使用belwow代码行来调用方法.

window.load = JavascriptFunctionName ; 
Run Code Online (Sandbox Code Playgroud)

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

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

        }
    });
Run Code Online (Sandbox Code Playgroud)

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

Nic*_*ver 7

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

document.ready - 这在DOM准备就绪时运行,所有元素都在页面上并准备好,但图像不一定是加载的.

这是jQuery的方法document.ready:

$(function() {
  CheckThis();
});
Run Code Online (Sandbox Code Playgroud)

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

$(window).load(function() {
  CheckThis();
});
Run Code Online (Sandbox Code Playgroud)

  • [`readyState`有3个选项](https://developer.mozilla.org/en/docs/Web/API/Document/readyState)`loading`,`interactive`和`complete`,你在谈论哪一个这里?根据文档"完成"意味着所有"子资源"(包括我想的图像......)都被加载.然后它说它表明`load`事件已被触发. (2认同)

ant*_*rat 5

window.load当页面完全加载(带有图像、横幅等)时触发,但document.readyState在 DOM 准备就绪时触发