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 选择表格(table)里的行和列及改变简单样式
Dec 15 Javascript
简略说明Javascript中的= =(等于)与= = =(全等于)区别
Apr 16 Javascript
浅析JavaScript中的CSS属性及命名规范
Nov 28 Javascript
JavaScript常用验证函数实例汇总
Nov 25 Javascript
如何高效率去掉js数组中的重复项
Apr 12 Javascript
jquery实现全选、不选、反选的两种方法
Sep 06 Javascript
微信小程序 弹窗自定义实例代码
Mar 08 Javascript
Vue axios全局拦截 get请求、post请求、配置请求的实例代码
Nov 28 Javascript
如何使用JavaScript实现栈与队列
Jun 24 Javascript
详解Vue串联过滤器的使用场景
Apr 30 Javascript
vue 限制input只能输入正数的操作
Aug 05 Javascript
js简单粗暴的发布订阅示例代码
Jan 23 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迭代器实现斐波纳契数列的函数
2013/11/12 PHP
PHP中的闭包(匿名函数)浅析
2015/02/07 PHP
php开发中的页面跳转方法总结
2015/04/26 PHP
php使用escapeshellarg时中文被过滤的解决方法
2016/07/10 PHP
巧用局部变量提升javascript性能
2014/02/24 Javascript
JavaScript打印网页指定区域的例子
2014/05/03 Javascript
JS实现转动随机数抽奖特效代码
2020/04/16 Javascript
使用jquery.form.js实现图片上传的方法
2016/05/05 Javascript
利用JS实现数字增长
2016/07/28 Javascript
Vuejs第九篇之组件作用域及props数据传递实例详解
2016/09/05 Javascript
获取JavaScript异步函数的返回值
2016/12/21 Javascript
基于Bootstrap 3 JQuery及RegExp的表单验证功能
2017/02/16 Javascript
详解angular中的作用域及继承
2017/05/31 Javascript
小程序图片剪裁加旋转的示例代码
2018/07/10 Javascript
JS加密插件CryptoJS实现AES加密操作示例
2018/08/16 Javascript
微信小程序上线发布流程图文详解
2019/05/06 Javascript
0基础学习前端开发的一些建议
2020/07/14 Javascript
[02:46]解说DC:感谢430陪伴我们的DOTA2国际邀请赛岁月
2016/06/29 DOTA
详解Python3中yield生成器的用法
2015/08/20 Python
python 读写、创建 文件的方法(必看)
2016/09/12 Python
Python Nose框架编写测试用例方法
2017/10/26 Python
Python+matplotlib绘制不同大小和颜色散点图实例
2018/01/19 Python
Python3中正则模块re.compile、re.match及re.search函数用法详解
2018/06/11 Python
详解python中的json和字典dict
2018/06/22 Python
基于Pyinstaller打包Python程序并压缩文件大小
2020/05/28 Python
Pytest如何使用skip跳过执行测试
2020/08/13 Python
css3media响应式布局实例
2016/07/08 HTML / CSS
详解CSS3 rem(设置字体大小) 教程
2017/11/21 HTML / CSS
培训班开班仪式主持词
2014/03/28 职场文书
经贸日语专业个人求职信范文
2014/04/29 职场文书
职员竞岗演讲稿
2014/05/14 职场文书
新闻编辑专业自荐信
2014/07/02 职场文书
买卖合同协议书范本
2014/10/18 职场文书
计生个人工作总结
2015/02/28 职场文书
2015年大学教师工作总结
2015/05/20 职场文书
sqlserver2017共享功能目录路径不可改的解决方法
2021/04/16 SQL Server