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 获取表单元素里面的值示例代码
Jul 28 Javascript
动态添加option及createElement使用示例
Jan 26 Javascript
JavaScript也谈内存优化
Jun 06 Javascript
jquery操作select方法汇总
Feb 05 Javascript
JavaScript中清空数组的方法总结
Dec 02 Javascript
通过jsonp获取json数据实现AJAX跨域请求
Jan 22 Javascript
纯js实现隔行变色效果
Nov 29 Javascript
细说webpack源码之compile流程-rules参数处理技巧(2)
Dec 26 Javascript
vue项目部署上线遇到的问题及解决方法
Jun 10 Javascript
Vue2.0 实现歌手列表滚动及右侧快速入口功能
Aug 08 Javascript
详解Angular5/Angular6项目如何添加热更新(HMR)功能
Oct 10 Javascript
nuxt中使用路由守卫的方法步骤
Jan 27 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
zf框架的数据库追踪器使用示例
2014/03/13 PHP
yii2实现分页,带搜索的分页功能示例
2017/01/07 PHP
JS 文件传参及处理技巧分析
2010/05/13 Javascript
window.dialogArguments 使用说明
2011/04/11 Javascript
NodeJS学习笔记之网络编程
2014/08/03 NodeJs
JS判断页面是否出现滚动条的方法
2015/07/17 Javascript
修改js confirm alert 提示框文字的简单实例
2016/06/10 Javascript
微信小程序使用第三方库Immutable.js实例详解
2016/09/27 Javascript
浅析JavaScript的几种Math函数,random(),ceil(),round(),floor()
2016/12/22 Javascript
JavaScript定义全局对象的方法示例
2017/01/12 Javascript
ES6中Iterator与for..of..遍历用法分析
2017/03/31 Javascript
使用Electron构建React+Webpack桌面应用的方法
2017/12/15 Javascript
vue结合axios与后端进行ajax交互的方法
2018/07/06 Javascript
利用js-cookie实现前端设置缓存数据定时失效
2019/06/18 Javascript
微信公众号平台接口开发 菜单管理的实现
2019/08/14 Javascript
JS实现导航栏楼层特效
2020/01/01 Javascript
JS实现简单日历特效
2020/01/03 Javascript
vue vant中picker组件的使用
2020/11/03 Javascript
JavaScript快速调试的两个技巧
2020/11/04 Javascript
微信小程序自定义底部弹出框功能
2020/11/18 Javascript
详解Python实现按任意键继续/退出的功能
2016/08/19 Python
Python实现的读取文件内容并写入其他文件操作示例
2019/04/09 Python
Django中间件基础用法详解
2019/07/18 Python
django认证系统 Authentication使用详解
2019/07/22 Python
python+tkinter实现学生管理系统
2019/08/20 Python
Python matplotlib修改默认字体的操作
2020/03/05 Python
使用keras内置的模型进行图片预测实例
2020/06/17 Python
Python环境配置实现pip加速过程解析
2020/11/27 Python
matplotlib阶梯图的实现(step())
2021/03/02 Python
Canvas 帧动画吃苹果小游戏
2020/08/05 HTML / CSS
韩国乐天网上商城:Lotte iMall
2021/02/03 全球购物
环保建议书300字
2014/05/14 职场文书
网吧消防安全责任书
2014/07/29 职场文书
小学运动会演讲稿
2014/08/25 职场文书
公司收款委托书范本
2014/09/20 职场文书
2015教师年度工作总结范文
2015/04/07 职场文书