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 Demo模态窗口
Dec 06 Javascript
js DOM模型操作
Dec 28 Javascript
百度移动版的url编码解码示例
Apr 29 Javascript
jQuery+CSS3+Html5实现弹出层效果实例代码(附源码下载)
May 16 Javascript
JavaScript操作表单实例讲解(上)
Jun 20 Javascript
JS判断浏览器是否安装flash插件的简单方法
Sep 13 Javascript
Bootstrap基本样式学习笔记之表单(3)
Dec 07 Javascript
javascript+html5+css3自定义弹出窗口效果
Oct 26 Javascript
vue.js删除列表中的一行
Jun 30 Javascript
使用vue自定义指令开发表单验证插件validate.js
May 23 Javascript
详解element-ui表格中勾选checkbox,高亮当前行
Sep 02 Javascript
JS实现京东商品分类侧边栏
Dec 11 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
在Windows版的PHP中使用ADO
2006/10/09 PHP
PHP 魔术函数使用说明
2010/05/14 PHP
php UTF-8、Unicode和BOM问题
2010/05/18 PHP
php使用多个进程同时控制文件读写示例
2014/02/28 PHP
ThinkPHP实现图片上传操作的方法详解
2017/05/08 PHP
Yii2 队列 shmilyzxt/yii2-queue 简单概述
2017/08/02 PHP
php将从数据库中获得的数据转换成json格式并输出的方法
2018/08/21 PHP
基于jquery可配置循环左右滚动例子
2011/09/09 Javascript
javascript权威指南 学习笔记之javascript数据类型
2011/09/24 Javascript
Three.js源码阅读笔记(基础的核心Core对象)
2012/12/27 Javascript
html5 canvas js(数字时钟)实例代码
2013/12/23 Javascript
完美的js div拖拽实例代码
2016/09/24 Javascript
Node.js中process模块常用的属性和方法
2016/12/13 Javascript
关于AngularJs数据的本地存储详解
2017/01/20 Javascript
js实现登录框鼠标拖拽效果
2017/03/09 Javascript
AngularJS自定义指令之复制指令实现方法
2017/05/18 Javascript
JS实现快速比较两个字符串中包含有相同数字的方法
2017/09/11 Javascript
python基础教程之Filter使用方法
2017/01/17 Python
Python绘制二维曲线的日常应用详解
2019/12/04 Python
基于python 将列表作为参数传入函数时的测试与理解
2020/06/05 Python
python zip()函数的使用示例
2020/09/23 Python
Django如何使用asyncio协程和ThreadPoolExecutor多线程
2020/10/12 Python
CSS3中background-clip和background-origin的区别示例介绍
2014/03/10 HTML / CSS
墨西哥网上购物:Linio墨西哥
2016/10/20 全球购物
澳大利亚在线时尚精品店:Hello Molly
2018/02/26 全球购物
Tretorn美国官网:瑞典外套和鞋类品牌,抵御风雨
2018/07/19 全球购物
英国玛莎百货新西兰:Marks & Spencer New Zealand
2019/07/21 全球购物
四年的大学生生活自我评价
2013/12/09 职场文书
中学实习教师自我鉴定
2013/12/12 职场文书
生物科学系大学生的自我评价
2013/12/20 职场文书
工商局副局长个人对照检查材料
2014/09/25 职场文书
端午节寄语2015
2015/03/23 职场文书
机关干部作风整顿心得体会
2016/01/22 职场文书
入门学习Go的基本语法
2021/07/07 Golang
vue如何实现关闭对话框后刷新列表
2022/04/08 Vue.js
Linux磁盘管理方法介绍
2022/06/01 Servers