JQ中$(window).load和$(document).ready区别与执行顺序


Posted in Javascript onMarch 01, 2017

JQ中的$(document).ready()大家应该用的非常多,基本每个JS脚本中都有这个函数的出现有时甚至会出现多个,那么另一个加载函数$(window).load相对出现的次数就很少了,下面为大家介绍一下两者的区别与他们的执行顺序

一般情况下一个页面响应加载的基本顺序是:域名解析 -> 加载html -> 加载js和css -> 加载图片等其他信息
那么我们在编写JS脚本时什么情况下使用$(document).ready()又在什么情况下使用$(window).load呢,我们先来了解一下两者的功能

一、$(document).ready()

从字面的意思上理解,就是文档准备好了。也就是浏览器已经加载并解析完整个html文档,dom树已经建立起来了,然后执行此函数

原生JavaScript中的写法如下:

document.ready=function(){
 alert("ready"); 
}

jQuery中的写法如下:

$(document).ready(function(){
 alert("ready");
});

$(function(){
 alert("ready");
});

二、$(window).load

在网页中所有元素(包括页面中图片,css文件等所有关联文件)完全加载到浏览器后才执行

原生JavaScript中的写法如下:

window.onload = function(){ 
 alert("onload"); 
};

jQuery中的写法如下:

$(window).load(function(){
 alert("onload");
});

两者的区别在于:

1.执行时间不同

$(document).ready()是在页面完成HTML的加载并建立了DOM树之后就开始执行,但这并不代表页面的所

有数据已经全部加载完成,一些大的图片有会在建立DOM树之后很长一段时间才行加载完成,而

$(window).load()就是整个页面已经加载完毕后才执行,包括图片等一些关联文件。

2.可以被执行的次数不同

$(document).ready()可以在JavaScript代码中出现多次,并且里面的函数或者代码都可以执行;而$(window).load()只能在JavaScript代码中出现一次,如果有多个$(window).load(),那么只有最后一个$(window).load()里面的函数或者代码才会执行,之前的$(window).load()都将被覆盖;

3.执行的效率不同

如要在dom的元素节点中添加onclick属性节点,这时用$(document).ready()就要比用$(window).load()的效率高;但是在某些时候还必须得用$(window).load()才行

总结一下就是:$(window).load()在$(document).ready之后执行,且页面中所有内容全部加载完成后才会执行,两者的使用时机一目了然,大家可以自行决定。

Javascript 相关文章推荐
JavaScript 浏览器验证代码(来自discuz)
Jul 17 Javascript
jquery next nextAll nextUntil siblings的区别介绍
Oct 05 Javascript
使用AngularJS来实现HTML页面嵌套的方法
Jun 17 Javascript
js脚本分页代码分享(7种样式)
Aug 19 Javascript
JS使用post提交的两种方式
Dec 03 Javascript
jQuery EasyUI学习教程之datagrid点击列表头排序
Jul 09 Javascript
Three.js快速入门教程
Sep 09 Javascript
JS控件bootstrap suggest plugin使用方法详解
Mar 25 Javascript
JS利用cookies设置每隔24小时弹出框
Apr 20 Javascript
Vue.js分页组件实现:diVuePagination的使用详解
Jan 10 Javascript
学习jQuery中的noConflict()用法
Sep 28 jQuery
JavaScript模板引擎应用场景及实现原理详解
Dec 14 Javascript
Angular2库初探
Mar 01 #Javascript
浅谈angular2的http请求返回结果的subcribe注意事项
Mar 01 #Javascript
JavaScript两个变量交换值的实现方法
Mar 01 #Javascript
js实现仿购物车加减效果
Mar 01 #Javascript
浅谈js中startsWith 函数不能在任何浏览器兼容的问题
Mar 01 #Javascript
js实现拖拽功能
Mar 01 #Javascript
js实现下拉菜单效果
Mar 01 #Javascript
You might like
PHP中调用ASP.NET的WebService的代码
2011/04/22 PHP
php 中英文语言转换类代码
2011/08/11 PHP
PHP CLI模式下的多进程应用分析
2013/06/03 PHP
PHP删除数组中空值的方法介绍
2014/04/14 PHP
PHP获取页面执行时间的方法(推荐)
2016/12/10 PHP
javascript 通用简单的table选项卡实现
2010/05/07 Javascript
Jquery异步请求数据实例代码
2011/12/28 Javascript
jquery ready函数、css函数及text()使用示例
2013/09/27 Javascript
JS实现将Asp.Net的DateTime Json类型转换为标准时间的方法
2016/08/02 Javascript
轻松掌握JavaScript中介者模式
2016/08/26 Javascript
Javascript json object 与string 相互转换的简单实现
2016/09/27 Javascript
javascript和jQuery中的AJAX技术详解【包含AJAX各种跨域技术】
2016/12/15 Javascript
基于MVC方式实现三级联动(JavaScript)
2017/01/23 Javascript
用最简单的方法判断JavaScript中this的指向(推荐)
2017/09/04 Javascript
Vue DevTools调试工具的使用
2017/12/05 Javascript
Vue单页面应用保证F5强刷不清空数据的解决方案
2018/01/31 Javascript
vue组件开发props验证的实现
2019/02/12 Javascript
JS使用数组实现的队列功能示例
2019/03/04 Javascript
vue递归组件实战之简单树形控件实例代码
2019/08/27 Javascript
jQuery实现飞机大战小游戏
2020/07/05 jQuery
openlayers实现地图测距测面
2020/09/25 Javascript
Python网页正文转换语音文件的操作方法
2018/12/09 Python
Python使用os.listdir()和os.walk()获取文件路径与文件下所有目录的方法
2019/04/01 Python
Python定义函数时参数有默认值问题解决
2019/12/19 Python
python3.6中anaconda安装sklearn踩坑实录
2020/07/28 Python
在pycharm中使用pipenv创建虚拟环境和安装django的详细教程
2020/11/30 Python
英国布鲁姆精品店:Bloom Boutique
2018/03/01 全球购物
毕业生自我鉴定范文
2013/11/08 职场文书
领导的自我鉴定
2013/12/28 职场文书
家长写给孩子的评语
2014/04/18 职场文书
人事任命书怎么写
2014/06/05 职场文书
股东授权委托书
2014/10/15 职场文书
2014年保洁工作总结
2014/11/24 职场文书
财务出纳岗位职责
2015/03/31 职场文书
高中物理教学反思
2016/02/19 职场文书
Python可视化学习之seaborn绘制矩阵图详解
2022/02/24 Python