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 技巧和窍门整理(8个)
Apr 22 Javascript
jquery 简单应用示例总结
Aug 09 Javascript
JAVASCRIPT模式窗口中下载文件无法接收iframe的流
Oct 11 Javascript
浅析Node.js中使用依赖注入的相关问题及解决方法
Jun 24 Javascript
javascript运动框架用法实例分析(实现放大与缩小效果)
Jan 08 Javascript
js小数计算小数点后显示多位小数的实现方法
May 30 Javascript
Vue2单一事件管理组件通信
May 09 Javascript
浅谈Vue.js 1.x 和 2.x 实例的生命周期
Jul 25 Javascript
Vue 页面状态保持页面间数据传输的一种方法(推荐)
Nov 01 Javascript
React 使用recharts实现散点地图的示例代码
Dec 07 Javascript
jQuery实现滑动星星评分效果(每日分享)
Nov 13 jQuery
原生js实现碰撞检测
Mar 12 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+jQuery 注册模块的改进(一):验证码存入SESSION
2014/10/14 PHP
php简单获取目录列表的方法
2015/03/24 PHP
php实现批量修改文件名称的方法
2016/07/23 PHP
浅谈socket同步和异步、阻塞和非阻塞、I/O模型
2016/12/15 PHP
thinkPHP5.1框架路由::get、post请求简单用法示例
2019/05/06 PHP
比较简单实用的使用正则三种版本的js去空格处理方法
2007/11/18 Javascript
JSON 客户端和服务器端的格式转换
2009/08/27 Javascript
跨浏览器开发经验总结(三)   警惕“IE依赖综合症”
2010/05/13 Javascript
网页整体变灰白色(兼容各浏览器)实例
2013/04/21 Javascript
javascript函数重载解决方案分享
2014/02/19 Javascript
JavaScript交换两个变量值的七种解决方案
2016/12/01 Javascript
create-react-app 修改为多入口编译的方法
2018/08/01 Javascript
vue动态改变背景图片demo分享
2018/09/13 Javascript
vue如何解决循环引用组件报错的问题
2018/09/22 Javascript
详解vue使用插槽分发内容slot的用法
2019/03/28 Javascript
Vue $mount实战之实现消息弹窗组件
2019/04/22 Javascript
vue动态绑定class的几种常用方式小结
2019/05/21 Javascript
koa2+vue实现登陆及登录状态判断
2019/08/15 Javascript
jquery实现的分页显示功能示例
2019/08/23 jQuery
Layui带搜索的下拉框的使用以及动态数据绑定方法
2019/09/28 Javascript
vue.config.js常用配置详解
2019/11/14 Javascript
详解Nuxt.js 实战集锦
2019/11/19 Javascript
Vue Object 的变化侦测实现代码
2020/04/15 Javascript
pandas 选择某几列的方法
2018/07/03 Python
TensorFlow tensor的拼接实例
2020/01/19 Python
Python request使用方法及问题总结
2020/04/26 Python
Pycharm激活方法及详细教程(详细且实用)
2020/05/12 Python
Feelunique美国:欧洲大型的在线美妆零售电商
2018/11/04 全球购物
Java里面Pass by value和Pass by Reference是什么意思
2016/05/02 面试题
如何通过jdbc调用存储过程
2012/04/19 面试题
应届毕业生专业个人求职自荐信格式
2013/11/20 职场文书
法人委托书范本格式
2014/09/15 职场文书
2014年销售部工作总结
2014/12/01 职场文书
2015年机关纠风工作总结
2015/05/15 职场文书
Python OpenCV 图像平移的实现示例
2021/06/04 Python
交互式可视化js库gojs使用介绍及技巧
2022/02/18 Javascript