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 相关文章推荐
静态页面下用javascript操作ACCESS数据库(读增改删)的代码
May 14 Javascript
javascript判断ie浏览器6/7版本加载不同样式表的实现代码
Dec 26 Javascript
javascript验证上传文件的类型限制必须为某些格式
Nov 14 Javascript
js中实现多态采用和继承类似的方法
Aug 22 Javascript
3种Jquery限制文本框只能输入数字字母的方法
Dec 03 Javascript
Bootstrap Table使用整理(二)
Jun 09 Javascript
JavaScript定义函数_动力节点Java学院整理
Jun 27 Javascript
JavaScript中Object基础内部方法图
Feb 05 Javascript
jsonp跨域及实现百度首页联想功能的方法
Aug 30 Javascript
vue-cli3.0+element-ui上传组件el-upload的使用
Dec 03 Javascript
在layui中select更改后生效的方法
Sep 05 Javascript
微信小程序canvas实现签名功能
Jan 19 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
php,不用COM,生成excel文件
2006/10/09 PHP
第十四节--命名空间
2006/11/16 PHP
php expects parameter 1 to be resource, array given 错误
2011/03/23 PHP
深入array multisort排序原理的详解
2013/06/18 PHP
浅谈Laravel中的一个后期静态绑定
2017/08/11 PHP
纯js实现的论坛常用的运行代码的效果
2008/07/15 Javascript
JavaScript入门教程 Cookies
2009/01/31 Javascript
Javascript处理DOM元素事件实现代码
2012/05/23 Javascript
JS对话框_JS模态对话框showModalDialog用法总结
2014/01/11 Javascript
javascript实例分享---具有立体效果的图片特效
2014/06/08 Javascript
微信JS接口汇总及使用详解
2015/01/09 Javascript
MVVM模式中ViewModel和View、Model有什么区别?
2015/06/19 Javascript
json实现添加、遍历与删除属性的方法
2016/06/17 Javascript
vue2.0全局组件之pdf详解
2017/06/26 Javascript
使用ionic(选项卡栏tab) icon(图标) ionic上拉菜单(ActionSheet) 实现通讯录界面切换实例代码
2017/10/20 Javascript
JS中实现隐藏部分姓名或者电话号码的代码
2018/07/17 Javascript
vue实现在线翻译功能
2019/09/27 Javascript
Java Varargs 可变参数用法详解
2020/01/28 Javascript
下载安装setuptool和pip linux安装pip    
2014/01/24 Python
Python实现二维曲线拟合的方法
2018/12/29 Python
python实现共轭梯度法
2019/07/03 Python
python实现横向拼接图片
2020/03/23 Python
Python Flask框架实现简单加法工具过程解析
2020/06/03 Python
为什么是 Python -m
2020/06/19 Python
Ellesse英国官网:意大利高级运动品牌
2019/07/23 全球购物
设计部经理的岗位职责
2013/11/16 职场文书
初中数学教学反思
2014/01/16 职场文书
大学生2014全国两会学习心得体会
2014/03/10 职场文书
大学生入党推荐书范文
2014/05/17 职场文书
环境日宣传活动总结
2014/07/09 职场文书
优秀班组申报材料
2014/12/25 职场文书
逃课检讨书范文
2015/05/06 职场文书
食品安全主题班会
2015/08/13 职场文书
分析ZooKeeper分布式锁的实现
2021/06/30 Java/Android
MySQL8.0的WITH查询详情
2021/08/30 MySQL
MySQL的InnoDB存储引擎的数据页结构详解
2022/03/03 MySQL