1.执行时间
window.onload必需等到页面内包孕图片的所有元素加载完毕后才华执行。
$(document).ready()是DOM布局绘制完毕后就执行,不必等到加载完毕。
2.编写个数差别
window.onload不能同时编写多个,如果有多个window.onload要领,只会执行一个
$(document).ready()可以同时编写多个,并且都可以得到执行
3.简化写法
window.onload没有简化写法
$(document).ready(function(){})可以简写成$(function(){});
在我以前的开发中,一般用到javascript,我都是给与jquery的模式,也就是大大都时候,第一行写的是:
复制代码代码如下:
$(document).ready(function(){
...
});
这个时候,不必然要等所有的js和图片加载完毕,就可以执行一些要领,不过有些时候,必需要等所有的
元素都加载完毕,才可以执行一些要领的时候,好比说,部分图片或者什么其他方面还没有加载好,这个时候,点击某些按钮,会导致呈现不测的情况,这个时候,就
需要用到:
复制代码代码如下:
$(window).load(function() {
$("#btn-upload").click(function(){ //好比说:
uploadPhotos();
});
});
下面是转载的内容,
用$(window).load(function(){...})而不用body.onload()的几个理由
首先它们都是在页面所有元素(包孕html标签以及引用到得所有图片,Flash等媒体)加载完毕后执行的,这是它们的配合点.
不用body.Onload()理由1:
如果我们想同时加载多个函数,我们必需这样写
<body></body>看起来极其丑恶,如果用$(window).load()我们可以这样加载多个函数
复制代码代码如下:
$(window).load(function() {
alert("hello,我是jQuery!");
});
$(window).load(function() {
alert("hello,我也是jQuery");
});
这样写它会从上往下执行这两个函数,并且看起来标致多了.
不用body.Onload()理由2:
用body.Onload()不能够做到js和html完全疏散,这是一个很严重的问题.
此外用$(window).load(function(){...})和body.onload()都存在同样一个问题,因为开始也说到了,它们都需要等到页面的所有内容
加载完毕才执行,但是如果当网速对照慢的时候,加载一个页面往往需要较长的时间(几秒到十几秒不等,甚至更长...),所以我们经常
会遇到页面还没有完全加载完毕而用户已经在操纵页面了这种情况,这样页面表示出来的效果就跟我们预期的效果不一样了,
所以在这里我保举使用$(document).ready(function(){}),或简写为$(function(){}),因为他会在页面的dom元素加载完毕后就执行,
而无需等到图片或其他媒体下载完毕.
但是有时候确实我们有需要等到页面的所有对象都加载完后再执行我们想执行的函数,所以是该使用$(window).load(function(){...})还是
该使用$(function(){})往往需要结合具体需要而作差此外选择.
最后附上一段在所有DOM元素加载之前执行的jQuery代码
复制代码代码如下:
<script type="text/javascript">
(function() {
alert("DOM还没加载哦!");
})(jQuery)
</script>
呵呵,有时候我们也有这个需求!
以 浏览器装载文档为例,在页面加载完毕后,浏览器会通过 Javascript 为 DOM 元素添加事件。在通例的 Javascript 代码中,凡是使用 window.onload 要领,而在 Jquery 中,使用的是 $(document).ready() 要领。 $(document).ready() 要领是事件模块中最重要一个函数,可以极大的提高 Web 应用措施的速度。window.load $(document).ready()
执行时机 必需期待网页中所有的内容加载完毕后 ( 包孕图片 ) 才华执行 网页中所有 DOM 布局绘制完毕后就执行,可以能 DOM 元素关联的内容并没有加载完
编写个数 不能同时编写多个
以下代码无法正确执行:
1
2
3
4
5
6
window.onload = function(){
alert(“text1”);
};
window.onload = function(){
alert(“text2”);
};
功效只输出第二个 能同时编写多个
以下代码正确执行:
1
2
3
4
5
6
$(document).ready(function(){
alert(“Hello World”);
});
$(document).ready(function(){
alert(“Hello again”);
});
功效两次都输出
简化写法 无
1
2
3
$(function(){
// do something
});