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实现的类似Google的Div拖动效果代码
Aug 09 Javascript
JS实现金额转换(将输入的阿拉伯数字)转换成中文的实现代码
Sep 30 Javascript
JS实现同时搜索百度和必应的方法
Jan 27 Javascript
jQuery操作Table技巧大汇总
Jan 23 Javascript
浅析javascript函数表达式
Feb 10 Javascript
JavaScript实现左右下拉框动态增删示例
Mar 09 Javascript
深入理解Webpack 中路径的配置
Jun 17 Javascript
Vue自定义指令详解
Jul 28 Javascript
JavaScript实现的斑马线表格效果【隔行变色】
Sep 18 Javascript
Django中使用jquery的ajax进行数据交互的实例代码
Oct 15 jQuery
Vue表单类的父子组件数据传递示例
May 03 Javascript
解决mpvue + vuex 开发微信小程序vuex辅助函数mapState、mapGetters不可用问题
Aug 03 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简单开启gzip压缩方法(zlib.output_compression)
2013/04/13 PHP
解析如何用php screw加密php源代码
2013/06/20 PHP
Yii把CGridView文本框换成下拉框的方法
2014/12/03 PHP
php写入数据到CSV文件的方法
2015/03/14 PHP
jQuery简单获取键盘事件的方法
2016/01/22 Javascript
15款最好的Bootstrap在线编辑器
2016/08/03 Javascript
seajs学习之模块的依赖加载及模块API的导出
2016/10/20 Javascript
AngularJS入门教程之过滤器用法示例
2016/11/02 Javascript
Vue.js 2.0 移动端拍照压缩图片上传预览功能
2017/03/06 Javascript
Bootstrap常用组件学习(整理)
2017/03/24 Javascript
angular基于ng-alain定义自己的select组件示例
2018/02/23 Javascript
vue iview组件表格 render函数的使用方法详解
2018/03/15 Javascript
详解如何用typescript开发koa2的二三事
2018/11/13 Javascript
原生JavaScript实现日历功能代码实例(无引用Jq)
2019/09/23 Javascript
vue 开发企业微信整合案例分析
2019/12/02 Javascript
vue 实现根据data中的属性值来设置不同的样式
2020/08/04 Javascript
JS中多层次排序算法的实现代码
2021/01/06 Javascript
[01:24:34]2014 DOTA2华西杯精英邀请赛5 24 DK VS LGD
2014/05/25 DOTA
python调用cmd命令行制作刷博器
2014/01/13 Python
深入Python解释器理解Python中的字节码
2015/04/01 Python
Python中的rfind()方法使用详解
2015/05/19 Python
python自带的http模块详解
2016/11/06 Python
python+opencv识别图片中的圆形
2020/03/25 Python
Python I/O与进程的详细讲解
2019/03/08 Python
Python实现结构体代码实例
2020/02/10 Python
python logging模块的使用
2020/09/07 Python
纯CSS3实现表单验证效果(非常不错)
2017/01/18 HTML / CSS
使用CSS3的appearance属性改变元素的外观的方法
2015/12/12 HTML / CSS
HTML5之SVG 2D入门2—图形绘制(基本形状)介绍及使用
2013/01/30 HTML / CSS
惠普加拿大在线商店:HP加拿大
2017/09/15 全球购物
灵泰克Java笔试题
2016/01/09 面试题
日语求职信范文
2013/12/17 职场文书
新闻专业毕业生英文求职信
2014/03/19 职场文书
荆州古城导游词
2015/02/06 职场文书
赡养老人协议书范本
2015/08/06 职场文书
浅谈JS的二进制家族
2021/05/09 Javascript