JQuery Tips相关(1)----关于$.Ready()


Posted in Javascript onAugust 14, 2014

 最近一直在研究JQuery,这个东西还是很博大精深的.下面分享一下我的学习总结.

$(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 相关文章推荐
类之Prototype.js学习
Jun 13 Javascript
jquery里的正则表达式说明
Aug 03 Javascript
js导出table到excel同时兼容FF和IE示例
Sep 03 Javascript
JavaScript显示当然日期和时间即年月日星期和时间
Oct 29 Javascript
调用DOM对象的focus使文本框获得焦点
Feb 19 Javascript
JS实现从顶部下拉显示的带动画QQ客服特效代码
Oct 24 Javascript
基于JavaScript实现类似于百度学术高级检索功能
Mar 02 Javascript
理解JavaScript原型链
Oct 25 Javascript
AngularJs导出数据到Excel的示例代码
Aug 11 Javascript
浅谈使用React.setState需要注意的三点
Dec 18 Javascript
layui 点击重置按钮, select 并没有被重置的解决方法
Sep 03 Javascript
JS实现省市县三级下拉联动
Apr 10 Javascript
javascript实现获取cookie过期时间的变通方法
Aug 14 #Javascript
javascript检查浏览器是否支持flash的实现代码
Aug 14 #Javascript
用Jquery选择器计算table中的某一列某一行的合计
Aug 13 #Javascript
html文档中的location对象属性理解及常见的用法
Aug 13 #Javascript
js中string转int把String类型转化成int类型
Aug 13 #Javascript
JS 排序输出实现table行号自增前端动态生成的tr
Aug 13 #Javascript
js图片闪动特效可以控制间隔时间如几分钟闪动一下
Aug 12 #Javascript
You might like
Laravel中使用自己编写类库的3种方法
2015/02/10 PHP
基于prototype的validation.js发布2.3.4新版本,让你彻底脱离表单验证的烦恼
2006/12/06 Javascript
jQuery中对未来的元素绑定事件用bind、live or on
2014/04/17 Javascript
JS实现双击编辑可修改状态的方法
2015/08/14 Javascript
jQuery实现简单滚动动画效果
2016/04/07 Javascript
JavaScript的ExtJS框架中表格的编写教程
2016/05/21 Javascript
JS实现获取剪贴板内容的方法
2016/06/21 Javascript
微信小程序图片横向左右滑动案例
2017/05/19 Javascript
JS实现定时任务每隔N秒请求后台setInterval定时和ajax请求问题
2017/10/15 Javascript
webpack4 处理SCSS的方法示例
2018/09/03 Javascript
vue实现扫码功能
2020/01/17 Javascript
[55:48]VGJ.S vs TNC Supermajor 败者组 BO3 第二场 6.6
2018/06/07 DOTA
[01:32]寻找你心中的那团火 DOTA2 TI9火焰传递活动今日开启
2019/05/16 DOTA
Python设计模式之代理模式实例
2014/04/26 Python
合并百度影音的离线数据( with python 2.3)
2015/08/04 Python
python 连接sqlite及简单操作
2017/06/30 Python
Python对List中的元素排序的方法
2018/04/01 Python
flask-socketio实现WebSocket的方法
2018/07/31 Python
python实现flappy bird小游戏
2018/12/24 Python
Python多进程入门、分布式进程数据共享实例详解
2019/06/03 Python
django 取消csrf限制的实例
2020/03/13 Python
Python tkinter实现简单加法计算器代码实例
2020/05/13 Python
Python 高效编程技巧分享
2020/09/10 Python
Pycharm快捷键配置详细整理
2020/10/13 Python
python 利用openpyxl读取Excel表格中指定的行或列教程
2021/02/06 Python
html5移动端自适应布局的实现
2020/04/15 HTML / CSS
法国足球商店:Footcenter
2019/07/06 全球购物
幼儿园实习生辞职信
2014/01/20 职场文书
2014年保卫部工作总结
2014/11/21 职场文书
文明单位汇报材料
2014/12/24 职场文书
导游词300字
2015/02/13 职场文书
高中生自我评价范文2015
2015/03/03 职场文书
k8s部署redis cluster集群的实现
2021/06/24 Redis
go select编译期的优化处理逻辑使用场景分析
2021/06/28 Golang
为了顺利买到演唱会的票用Python制作了自动抢票的脚本
2021/10/16 Python
利用Python实现Picgo图床工具
2021/11/23 Python