JQuery中$(document).ready()与传统JavaScript中的window.onload方法比较
来源:互联网 发布:酒店软件排名 编辑:程序博客网 时间:2024/05/08 12:10
一,区别
1.执行时间
window.onload必须等到页面内包括图片的所有元素加载完毕后才能执行。$(document).ready()是DOM结构绘制完毕后就执行,不必等到加载完毕。
2.编写个数不同
window.onload不能同时编写多个,如果有多个window.onload方法,只会执行一个
$(document).ready()可以同时编写多个,并且都可以得到执行
3.简化写法
window.onload没有简化写法
$(document).ready(function(){})可以简写成$(function(){});
例如:
$(document).ready(function(){
...
});
这个时候,不一定要等所有的js和图片加载完毕,就可以执行一些方法,不过有些时候,必须要等所有的元素都加载完毕,才可以执行一些方法的时候,比如说,部分图片或者什么其他方面还没有加载好,这个时候,点击某些按钮,会导致出现意外的情况,这个时候,就需要用到:
$(window).load(function() {
$("#btn-upload").click(function(){ //比如说:
uploadPhotos();
});
});
为什么用$(window).load(function(){...})而不用body.onload()?
1,首先它们都是在页面所有元素(包括html标签以及引用到得所有图片,Flash等媒体)加载完毕后执行的,这是它们的共同点.
2,如果我们想同时加载多个函数,我们必须这样写
<body onload="fn1(),fn2()"></body>看起来极其丑陋,如果用$(window).load()我们可以这样加载多个函数
$(window).load(function() {
alert("hello,我是jQuery!");
});
$(window).load(function() {
alert("hello,我也是jQuery");
});
3,用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>
有时我们也有这个需求哦。
- JQuery中$(document).ready()与传统JavaScript中的window.onload方法比较
- jQuery中$(document).ready()方法与传统JavaScript中的window.onload的差异
- Jquery中$(document).ready()的作用类似于传统JavaScript中的window.onload方法
- Jquery中$(document).ready()和传统JavaScript中的window.onload的区别。
- jQuery中$(document).ready与Javascript中window.onload区别
- JavaScript中的window.onload方法与jQuery中的$(document).ready()方法的区别
- Jquery中$(document).ready()与window.onload方法的区别
- 传统JS中的window.onload方法和jQuery中的$(document).ready()方法的区别
- javascript中的window.onload() 和 jquery中的 $(document).ready()
- 浅谈JavaScript中的window.onload方法和JQuery中的$(document).ready()方法
- jquery中的$(document).ready()方法和window.onload方法区别
- jquery中的$(document).ready()方法和window.onload方法区别
- window.onload方法 和jquery中的$(document).ready()方法区别
- jquery中的$(document).ready()方法和window.onload方法区别
- jquery中的$(document).ready()方法和window.onload方法区别
- jquery中的$(document).ready()方法和window.onload方法区别
- jQuery中的$(document).ready()与js中的window.onload
- javascript的window.onload与jquery的$(document).ready()
- lambda 表达式
- 7种qsort排序
- [HDOJ 4862] Jump [费用流]
- 3.7 Cortex-M3 的堆栈实现
- 食品机械广泛应用于橡胶纳米技术驱动的领域 - 纳米,食品机械,橡胶 -
- JQuery中$(document).ready()与传统JavaScript中的window.onload方法比较
- 数据输入加速
- 【HDU 4864】Task【贪心】
- 生活不是发现你自己,而是创造你自己!
- Uva 537 Artificial Intelligence?(Java正则表达式)
- hdu1845 Jimmy’s Assignment --- 完备匹配
- android strings.xml转义字符, 注意细节解决
- 驱动开发之 用DeviceIoControl实现应用程序与驱动程序通信
- 程序员保持天天快乐的6个习惯