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 相关文章推荐
关于jquery性能最佳实践的讨论,与求教
Mar 30 Javascript
fancybox modal的完美解决(右上的X)
Oct 30 Javascript
jQuery 选择器项目实例分析及实现代码
Dec 28 Javascript
BootStrap点击下拉菜单项后显示一个新的输入框实现代码
May 16 Javascript
js实现的页面加载完毕之前loading提示效果完整示例【附demo源码下载】
Aug 02 Javascript
Javascript中数组去重与拍平的方法示例
Feb 03 Javascript
Angular.js组件之input mask对input输入进行格式化详解
Jul 10 Javascript
php中and 和 &amp;&amp;出坑指南
Jul 13 Javascript
从零开始实现Vue简单的Toast插件
Dec 03 Javascript
fetch 如何实现请求数据
Dec 20 Javascript
jQuery模拟html下拉多选框的原生实现方法示例
May 30 jQuery
Node登录权限验证token验证实现的方法示例
May 25 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
关于svn冲突的解决方法
2013/06/21 PHP
将word转化为swf 如同百度文库般阅读实现思路及代码
2013/08/09 PHP
php中curl使用指南
2015/02/05 PHP
Yii2中事务的使用实例代码详解
2016/09/07 PHP
完美解决thinkphp唯一索引重复时出错的问题
2017/03/31 PHP
表单项的name命名为submit、reset引起的问题
2007/12/22 Javascript
用js实现的模拟jquery的animate自定义动画(2.5K)
2010/07/20 Javascript
解析Javascript中中括号“[]”的多义性
2013/12/03 Javascript
jQuery检测鼠标左键和右键点击的方法
2015/03/17 Javascript
实例解析JS布尔对象的toString()方法和valueOf()方法
2015/10/25 Javascript
基于JavaScript实现简单的随机抽奖小程序
2016/01/05 Javascript
javascript加减乘除的简单实例
2016/07/12 Javascript
实例解析angularjs的filter过滤器
2016/12/14 Javascript
Javascript基础回顾之(三) js面向对象
2017/01/31 Javascript
JS实现针对给定时间的倒计时功能示例
2017/04/11 Javascript
jQuery Pagination分页插件_动力节点Java学院整理
2017/07/17 jQuery
基于Vue过渡状态实例讲解
2017/09/14 Javascript
微信小程序实现用table显示数据库反馈的多条数据功能示例
2019/05/07 Javascript
用Python实现一个简单的多线程TCP服务器的教程
2015/05/05 Python
django2 快速安装指南分享
2018/01/05 Python
Python实现合并同一个文件夹下所有PDF文件的方法示例
2018/04/28 Python
python2.x实现人民币转大写人民币
2018/06/20 Python
Python中list的交、并、差集获取方法示例
2019/08/01 Python
使用tensorflow显示pb模型的所有网络结点方式
2020/01/23 Python
keras Lambda自定义层实现数据的切片方式,Lambda传参数
2020/06/11 Python
浅谈多卡服务器下隐藏部分 GPU 和 TensorFlow 的显存使用设置
2020/06/30 Python
python切割图片的示例
2020/11/12 Python
python文件路径操作方法总结
2020/12/21 Python
吉列剃须刀英国官网:Gillette英国
2019/03/28 全球购物
自动化工程专业个人应聘自荐信
2013/09/26 职场文书
自荐信封面
2013/12/04 职场文书
课内比教学心得体会
2014/09/09 职场文书
批评与自我批评总结
2014/10/17 职场文书
百年校庆宣传标语口号
2015/12/26 职场文书
PHP实现考试倒计时功能代码
2021/04/16 PHP
html+css实现滚动到元素位置显示加载动画效果
2021/08/02 HTML / CSS