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 面向对象之命名空间
May 04 Javascript
ie浏览器使用js导出网页到excel并打印
Mar 11 Javascript
js实现漂浮回顶部按钮实例
May 06 Javascript
基于jQuery实现仿微博发布框字数提示
Jul 27 Javascript
老生常谈JavaScript 正则表达式语法
Aug 20 Javascript
基于jQuery ligerUI实现分页样式
Sep 18 Javascript
微信小程序 出现错误:{&quot;baseresponse&quot;:{&quot;errcode&quot;:-80002,&quot;errmsg&quot;:&quot;&quot;}}解决办法
Feb 23 Javascript
Angular2平滑升级到Angular4的步骤详解
Mar 29 Javascript
js保留两位小数方法总结
Jan 31 Javascript
vue实现标签云效果的方法详解
Aug 28 Javascript
js计算最大公约数和最小公倍数代码实例
Sep 11 Javascript
vue学习笔记之slot插槽用法实例分析
Feb 29 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
超级简单的发送邮件程序
2006/10/09 PHP
PHP 查找字符串常用函数介绍
2012/06/07 PHP
php curl post 时出现的问题解决
2014/01/30 PHP
学习php开源项目的源码指南
2014/12/21 PHP
php字符串函数学习之substr()
2015/03/27 PHP
PHP获取真实客户端的真实IP
2017/03/07 PHP
PHP实现15位身份证号转18位的方法分析
2019/10/16 PHP
php使用gearman进行任务分发操作实例详解
2020/02/26 PHP
javascript不可用的问题探究
2013/10/01 Javascript
让table变成exls的示例代码
2014/03/24 Javascript
JavaScript控制图片加载完成后调用回调函数的方法
2015/03/20 Javascript
理解javascript中的原型和原型链
2015/07/30 Javascript
jQuery 特性操作详解及实例代码
2016/09/29 Javascript
Javascript同时声明一连串(多个)变量的方法
2017/01/23 Javascript
Angular 4.x 动态创建表单实例
2017/04/25 Javascript
JavaScript瀑布流布局实现代码
2017/05/06 Javascript
jQuery Ajax使用FormData上传文件和其他数据后端web.py获取
2017/06/11 jQuery
详解vue-cli本地环境API代理设置和解决跨域
2017/09/05 Javascript
Vue.js 通过jQuery ajax获取数据实现更新后重新渲染页面的方法
2018/08/09 jQuery
Vue.js结合bootstrap前端实现分页和排序效果
2018/12/29 Javascript
JavaScript数组排序小程序实现解析
2020/01/13 Javascript
微信小程序实现带放大效果的轮播图
2020/05/26 Javascript
在vue中嵌入外部网站的实现
2020/11/13 Javascript
[01:37]DOTA2超级联赛专访ChuaN 传奇般的电竞之路
2013/06/19 DOTA
[56:42]VP vs RNG 2019国际邀请赛小组赛 BO2 第二场 8.15
2019/08/17 DOTA
python嵌套函数使用外部函数变量的方法(Python2和Python3)
2016/01/31 Python
在Python dataframe中出生日期转化为年龄的实现方法
2018/10/20 Python
Python3中函数参数传递方式实例详解
2019/05/05 Python
详解使用CSS3的@media来编写响应式的页面
2017/11/01 HTML / CSS
用HTML5制作一个简单的弹力球游戏
2015/05/12 HTML / CSS
应届生会计求职信
2013/11/11 职场文书
幼师自荐信范文
2015/03/06 职场文书
2015年法院工作总结范文
2015/04/28 职场文书
500字作文之周记
2019/12/13 职场文书
《卧薪尝胆》读后感3篇
2019/12/26 职场文书
Redis实战之Lettuce的使用技巧详解
2022/12/24 Redis