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中的数学函数
Apr 04 Javascript
jquery 可排列的表实现代码
Nov 13 Javascript
JQuery 操作select标签实现代码
May 14 Javascript
JavaScript高级程序设计(第3版)学习笔记5 js语句
Oct 11 Javascript
ExtJS4给Combobox设置列表中的默认值示例
May 02 Javascript
jQuery+formdata实现上传进度特效遇到的问题
Feb 24 Javascript
使用vue编写一个点击数字计时小游戏
Aug 31 Javascript
解决vue-cli脚手架打包后vendor文件过大的问题
Sep 27 Javascript
nuxt中使用路由守卫的方法步骤
Jan 27 Javascript
JavaScript实现简单进度条效果
Mar 25 Javascript
解决VUE项目使用Element-ui 下拉组件的验证失效问题
Nov 07 Javascript
vue组件中传值EventBus的使用及注意事项说明
Nov 16 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程序实现支持页面后退的两种方法
2008/06/30 PHP
PHP array_push 数组函数
2009/12/26 PHP
php 去除html标记--strip_tags与htmlspecialchars的区别详解
2013/06/26 PHP
php通过隐藏表单控件获取到前两个页面的url
2014/09/09 PHP
PHP中Memcache操作类及用法实例
2014/12/12 PHP
使用URL传输SESSION信息
2015/07/14 PHP
PHP几个实用自定义函数小结
2016/01/25 PHP
js 面向对象的技术创建高级 Web 应用程序
2010/02/25 Javascript
JS关闭窗口与JS关闭页面的几种方法小结
2013/12/17 Javascript
jQuery aminate方法定位到页面具体位置
2013/12/26 Javascript
JavaScript的作用域和块级作用域概念理解
2014/09/21 Javascript
jQuery使用CSS()方法给指定元素同时设置多个样式
2015/03/26 Javascript
jQuery动态背景图片效果实现方法
2015/07/03 Javascript
超漂亮的Bootstrap 富文本编辑器summernote
2016/04/05 Javascript
jQuery事件的绑定、触发、及监听方法简单说明
2016/05/10 Javascript
JQuery控制图片由中心点逐渐放大效果
2016/06/26 Javascript
JSON 数据详解及实例代码分析
2017/01/20 Javascript
Node.js获取前端ajax提交的request信息
2017/02/20 Javascript
javascript图片预览和上传(兼容IE)
2017/03/15 Javascript
vue渲染时闪烁{{}}的问题及解决方法
2018/03/28 Javascript
vue-cli 3.x 配置Axios(proxyTable)跨域代理方法
2018/09/19 Javascript
在vue中使用Echarts利用watch做动态数据渲染操作
2020/07/20 Javascript
[01:34]DOTA2 7.22版本新增神杖效果一览(敏捷英雄篇)
2019/05/28 DOTA
Python实现利用最大公约数求三个正整数的最小公倍数示例
2017/09/30 Python
Python3实现发送QQ邮件功能(html)
2017/12/15 Python
Python设计模式之观察者模式简单示例
2018/01/10 Python
使用python对excle和json互相转换的示例
2018/10/23 Python
Python使用reportlab模块生成PDF格式的文档
2019/03/11 Python
用pycharm开发django项目示例代码
2019/06/13 Python
Python3.7安装PyQt5 运行配置Pycharm的详细教程
2020/10/15 Python
详解Pytorch显存动态分配规律探索
2020/11/17 Python
英国女性时尚品牌:Apricot
2018/12/04 全球购物
POS解决方案:MUNBYN(热敏打印机、条形码扫描仪)
2020/06/09 全球购物
2014年开学第一课活动方案
2014/03/06 职场文书
会议主持词开场白
2015/05/28 职场文书
JavaScript 定时器详情
2021/11/11 Javascript