JQuery下关于$.Ready()的分析


Posted in Javascript onDecember 13, 2009

$(document).Ready()方法 VS OnLoad事件 VS $(window).load()方法
接触JQuery一般最先学到的是何时启动事件。在曾经很长一段时间里,在页面载入后引发的事件都被加载在”Body”的Onload事件里.

对于Body的Onload事件和JQuery的Ready方法相比,有很多弊端.比如:

1.加载多个函数的问题
<body onload="a();b();">
</body>

在Onload事件中只能这样加载,很丑陋…而在JQuery中你可以利用多个JQuery.Ready()方法,它们会按次序依次执行

2.代码和内容不分离
这个貌似不用说了,让人深恶痛绝-.-!!

3.执行先后顺序不同
对于Body.Onload事件,是在加载完所有页面内容才会触发,我的意思是所有内容,包括图片,flash等.如果页面的这些内容很多会让用户等待很长时间.

而对于$(document).ready()方法,这个方法只是在页面所有的DOM加载完毕后就会触发,无疑很大的加快了网页的速度.

但是对于一些特殊应用,比如图片的放大缩小,图片的剪裁。需要网页所有的内容加载完毕后才执行的呢?我推荐使用$(window).load()方法,这个方法会等到页面所有内容加载完毕后才会触发,并且同时又没有OnLoad事件的弊端.

<script type="text/javascript"> 
$(window).load(function() { 
alert("hello"); 
}); 
$(window).load(function() { 
alert("hello again"); 
}); 
</script>

上面的代码会在页面所有内容加载完成后按先后顺序依次执行.

当然不要忘了与之对应的Unload方法

$(window).unload(function() { 
alert("good bye"); 
});

上面代码会在页面关闭时引发.

在所有DOM加载之前引发JS代码
这个方法是我在调试的时候最喜欢的,有时候开发的时候也用这种方法

<body> 
<script type="text/javascript"> 
(function() { 
alert("hi"); 
})(jQuery) 
</script> 
</body>

对,就是利用js闭包的形式将js代码嵌入body,这段代码会自动执行,当然也可以直接嵌入js代码,这种方式要注意顺序问题,如下:
<body> 
<div id="test">this is the content</div> 
<script type="text/javascript"> alert($("#test").html());//I Can display the content 
</script> 
</body> 
<body> 
<script type="text/javascript"> 
alert($("#test").html());//I Can't display the content 
</script> 
<div id="test">this is the content</div> 
</body>

上面两段代码,第二段代码当中因为只能解释到当前代码之前的DOM,而test并不存在于已经解析的DOM数.所以第二段代码无法正确显示.
Javascript 相关文章推荐
JavaScript中实现块作用域的方法
Apr 01 Javascript
seajs1.3.0源码解析之module依赖有序加载
Nov 07 Javascript
Jquery实现图片放大镜效果的思路及代码(自写)
Oct 18 Javascript
Jquery实现自定义弹窗示例
Mar 12 Javascript
基于javascript实现的搜索时自动提示功能
Dec 26 Javascript
js流动式效果显示当前系统时间
May 16 Javascript
AngularJS模板加载用法详解
Nov 04 Javascript
js实现点击每个li节点,都弹出其文本值及修改
Dec 15 Javascript
jQuery插件HighCharts绘制的2D堆柱状图效果示例【附demo源码下载】
Mar 14 Javascript
vue拦截器Vue.http.interceptors.push使用详解
Apr 22 Javascript
bootstrap响应式导航条模板使用详解(含下拉菜单,弹出框)
Nov 17 Javascript
vue实现鼠标移过出现下拉二级菜单功能
Dec 12 Javascript
javascript与asp.net(c#)互相调用方法
Dec 13 #Javascript
JavaScript 字符串与数组转换函数[不用split与join]
Dec 13 #Javascript
jQuery 行背景颜色的交替显示(隔行变色)实现代码
Dec 13 #Javascript
页面中iframe相互传值传参
Dec 13 #Javascript
jquery提示 &quot;object expected&quot;的解决方法
Dec 13 #Javascript
js 加载并解析XML字符串的代码
Dec 13 #Javascript
javascript 强制刷新页面的实现代码
Dec 13 #Javascript
You might like
关于PHP文件的自动运行方法分析
2016/05/13 PHP
js 本地预览的简单实现方法
2014/02/18 Javascript
使用jquery实现的一个图片延迟加载插件(含图片延迟加载原理)
2014/06/05 Javascript
jQuery实现隔行背景色变色
2014/11/24 Javascript
jquery中show()、hide()和toggle()用法实例
2015/01/15 Javascript
javascript操作符&quot;!~&quot;详解
2015/02/10 Javascript
jQuery实现的在线答题功能
2015/04/12 Javascript
详解JavaScript基于面向对象之继承
2015/12/13 Javascript
JavaScript操作select元素和option的实例代码
2016/01/29 Javascript
Node.js插件安装图文教程
2016/05/06 Javascript
angular实现form验证实例代码
2017/01/17 Javascript
基于webpack 实用配置方法总结
2017/09/28 Javascript
JavaScript中关于class的调用方法
2017/11/28 Javascript
jQuery Dom元素操作技巧
2018/02/04 jQuery
js 图片转base64的方式(两种)
2018/04/24 Javascript
vue translate peoject实现在线翻译功能【新手必看】
2018/06/07 Javascript
浅谈vue中get请求解决传输数据是数组格式的问题
2020/08/03 Javascript
vue 实现element-ui中的加载中状态
2020/11/11 Javascript
python数据结构树和二叉树简介
2014/04/29 Python
Django 登陆验证码和中间件的实现
2018/08/17 Python
Python实现字典排序、按照list中字典的某个key排序的方法示例
2018/12/18 Python
Python音频操作工具PyAudio上手教程详解
2019/06/26 Python
pandas read_excel()和to_excel()函数解析
2019/09/19 Python
几款好用的python工具库(小结)
2020/10/20 Python
会计专业毕业生求职信分享
2014/01/03 职场文书
企业管理毕业生求职信
2014/03/11 职场文书
团队经理竞聘书
2014/03/31 职场文书
教师先进工作者事迹材料
2014/05/01 职场文书
志愿者活动总结报告
2014/06/27 职场文书
人代会标语
2014/06/30 职场文书
基层党员对照检查材料
2014/08/25 职场文书
领导班子四风对照检查材料范文
2014/09/27 职场文书
2014年村委会工作总结
2014/11/24 职场文书
表扬通报怎么写
2015/01/16 职场文书
2016猴年春节慰问信
2015/11/30 职场文书
2019年度开业庆典祝福语大全!
2019/07/05 职场文书