`$(window).load(function(){})`和`$(function(){})之间有什么区别?
我正在使用$(window).load(function(){});
对于我的项目,直到某处我看到有人说我们可以使用$(function(){});
他们的表现相同。
但是现在我有更多的经验,我注意到他们并不完全相同。 我注意到在第二段代码之后,第一件作品开始了。
我只是想知道有什么区别?
$(document).ready(function(){})
将等到文档加载(加载DOM树),直到加载整个窗口。 例如它不会等待图像,css或javascript完全加载。 一旦DOM加载了所有HTML组件和事件处理程序,文档就可以处理了,然后$(document).ready()将完成
$(window).load(function(){});
这等待加载整个窗口。 加载整个页面时,只完成$(window).load()。 因此很明显$(document).ready(function(){})在$(window).load()之前完成,因为填充组件(如图像,css)需要更多时间才能加载DOM树。
所以$(function(){});
不能用作$(window).load(function(){});
的替代品$(window).load(function(){});
来自jQuery文档本身。
大多数Javascript程序员最终做的第一件事就是在程序中添加一些代码,类似于:
window.onload = function(){ alert("welcome"); }
其中包含您希望在加载页面时运行的代码。 但是,问题是,在完成所有图像下载(包括横幅广告)之前,Javascript代码不会运行。 首先使用window.onload的原因是当你第一次尝试运行代码时,HTML’文档’还没有完成加载。
为了避免这两个问题,jQuery有一个简单的语句来检查文档并等待它准备好被操作,称为ready事件:
$(document).ready(function(){ // Your code here });
现在,
$(window).load(function(){});
等于window.onload = function(){ alert("welcome"); }
window.onload = function(){ alert("welcome"); }
并且, $(function(){});
是$(document).ready(function(){ });
的快捷方式$(document).ready(function(){ });
我想,这清除了一切:)
$(window).load
从我的经验等待,直到包含图像的所有内容都被加载,然后运行$(function() {});
与$(document).ready(function() {});
具有相同的行为$(document).ready(function() {});
如果我错了,请有人纠正我。
第二个是$(document).ready()
的快捷方式,它应该在window
的load事件之前运行。
请注意, $(document).ready()
是将某些东西绑定到document
加载的首选方式; 还有其他一些方法可以像你展示的那样,但这是首选。