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来定位
Feb 20 Javascript
Jquery判断IE6等浏览器的代码
Apr 05 Javascript
javascript的console.log()用法小结
May 31 Javascript
JavaScript结合AJAX_stream实现流式显示
Jan 08 Javascript
JS实现5秒钟自动封锁div层的方法
Feb 20 Javascript
javascript实现textarea中tab键的缩排处理方法
Jun 26 Javascript
jQuery实现有动画淡出效果的二级折叠菜单代码
Oct 17 Javascript
javascript中加var和不加var的区别 你真的懂吗
Jan 06 Javascript
基于zepto的移动端轻量级日期插件--date_picker
Mar 04 Javascript
Vue项目webpack打包部署到Tomcat刷新报404错误问题的解决方案
May 15 Javascript
jquery ajaxfileuplod 上传文件 essyui laoding 效果【防止重复上传文件】
May 26 jQuery
多个Vue项目部署到服务器的步骤记录
Oct 22 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 记录进行累加并显示总时长为秒的结果
2011/11/04 PHP
利用php绘制饼状图的实现代码
2013/06/07 PHP
ThinkPHP学习笔记(一)ThinkPHP部署
2014/06/22 PHP
ThinkPHP调用common/common.php函数提示错误function undefined的解决方法
2014/08/25 PHP
Laravel框架FormRequest中重写错误处理的方法
2019/02/18 PHP
popdiv
2006/07/14 Javascript
javascript new 需不需要继续使用
2009/07/02 Javascript
Jquery判断radio、selelct、checkbox是否选中及获取选中值方法总结
2015/04/15 Javascript
深入理解JavaScript 函数
2016/06/06 Javascript
js鼠标单击和双击事件冲突问题的快速解决方法
2016/07/11 Javascript
jquery validation验证表单插件
2017/01/07 Javascript
Nodejs回调加超时限制两种实现方法
2017/06/09 NodeJs
vue中实现移动端的scroll滚动方法
2018/03/03 Javascript
[26:24]完美副总裁、DOTA2负责人蔡玮专访:电竞如人生
2014/09/11 DOTA
简单介绍Python中的JSON使用
2015/04/28 Python
python利用不到一百行代码实现一个小siri
2017/03/02 Python
Pycharm学习教程(5) Python快捷键相关设置
2017/05/03 Python
Python利用flask sqlalchemy实现分页效果
2020/08/02 Python
python3基于TCP实现CS架构文件传输
2018/07/28 Python
python中selenium操作下拉滚动条的几种方法汇总
2019/07/14 Python
淘宝秒杀python脚本 扫码登录版
2019/09/19 Python
基于django micro搭建网站实现加水印功能
2020/05/22 Python
如何基于Python代码实现高精度免费OCR工具
2020/06/18 Python
HTML5 背景的显示区域实现
2020/07/09 HTML / CSS
syb养殖创业计划书
2014/01/09 职场文书
实验教师岗位职责
2014/02/13 职场文书
优秀部门获奖感言
2014/02/14 职场文书
犯错检讨书
2014/02/21 职场文书
2014年三八妇女节活动方案
2014/02/28 职场文书
校园文化标语
2014/06/18 职场文书
保卫钓鱼岛口号
2014/06/20 职场文书
2015年宣传部工作总结范文
2015/03/31 职场文书
2015年银行客户经理工作总结
2015/04/01 职场文书
销售人员管理制度
2015/08/06 职场文书
创业计划书之网络外卖
2019/10/31 职场文书
python随机打印成绩排名表
2021/06/23 Python