jquery $(document).ready() 与window.onload的区别
来源:互联网 发布:java怎么用 编辑:程序博客网 时间:2024/05/22 10:23
jquery $(document).ready() 与window.onload的区别
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 onload="fn1(),fn2()"></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元素加载完毕后就执行,而无需等到图片或其他媒体下载完毕.
转自:http://www.jb51.net/article/21628.htm
- jquery的$(document).ready()方法 与 window.onload 的区别
- jquery中的$(document).ready()与window.onload的区别
- [转]jQuery $(document).ready()与window.onload的区别
- jquery $(document).ready() 与window.onload的区别
- jquery 中 $(document).ready() 与window.onload 的区别
- jquery中的$(document).ready()与window.onload的区别
- jquery $(document).ready() 与window.onload的区别
- 【jquery】一、 $(document).ready() 与window.onload的区别
- jquery $(document).ready() 与window.onload的区别
- jquery $(document).ready() 与window.onload的区别
- jquery $(document).ready() 与window.onload的区别
- jquery $(document).ready() 与window.onload的区别
- jquery $(document).ready() 与window.onload的区别
- jquery $(document).ready() 与window.onload的区别
- jquery $(document).ready() 与window.onload的区别
- jquery $(document).ready() 与window.onload的区别
- jquery $(document).ready() 与window.onload的区别
- jquery $(document).ready() 与window.onload的区别
- 曝光融合Exposure Fusion 与ghost
- UINavigationBar 使用总结
- C++ explicit构造函数
- 用户空间与内核空间,进程上下文与中断上下文[总结]
- java 不让查询数据库sql一直在循环中执行的方法
- jquery $(document).ready() 与window.onload的区别
- 【NOI OJ】1818 红与黑
- 【数学建模】数据包络分析法
- Ueditor指定用br做换行标签
- 关于Context []startup failed due to previous errors有效解决方式(1)
- BZOJ4614 [Wf2016]Oil
- 正确编写概要设计说明书
- 一起写RPC框架(二)RPC之项目搭建
- eetcode_c++:树:Lowest Common Ancestor of a Binary Tree(236)