细说document.ready和window.onload
原文
简书原文:https://www.jianshu.com/p/bbf28d61aa1f
大纲
1、对页面加载的认识
2、关于document.ready()
3、关于document.onload()
4、document.ready和window.onload的区别
5、为什么要使用document.ready()或者document.onload()
6、document.ready()的使用场景
1、对页面加载的认识
一般情况下,一个页面的相应加载顺序是:域名解析——>加载html——>加载js和css——>加载图片等其他信息。
2、关于document.ready()
执行时机:在DOM完全就绪时就可以被调用。
多次使用:在同一个文件中多次使用,一次调用。
理解:document.ready()的意思是在DOM加载完成之后执行ready()方法中的代码,换句话说,这个方法的本意是为了让代码的执行时间是在DOM加载完成之后才开始执行。
/*
多次使用:运行结果为:先是one,然后是two
*/
function one(){
alert("one");
}
function two(){
alert("two");
}
$(document).ready(function(){
one();
});
$(document).ready(function(){
two();
}); /*
写法
*/
//jq的写法
$(document).ready(function(){
//do something
});
//简写,默认document
$().ready(function(){
//do somethin
});
//简写
$(function(){
//do something
});
3、关于document.onload()
执行时机:在网页中所有元素(包括元素的所有关联文件)完全加载到浏览器后才执行,即JavaScript此时可以访问网页中的所有元素。
多次执行:JavaScript的onload事件一次只能保存对一个函数的引用,他会自动调用最后面的函数覆盖前面的函数。
/*
多次使用:运行结果为:只执行了two
*/
function one(){
alert("one");
}
function two(){
alert("two");
} window.onload = one;
window.onload = two; /*
写法
*/
window.onload = function(){
//do something
}
//等价于
$(window).load(function(){
//do something
})
4、document.ready和window.onload的区别
document.ready和window.onload的区别——JavaScript文档加载完成事件。
页面加载完成有两种事件:
一是ready,表示文档结构已经加载完成(不包含图片等非文字媒体文件)。
二是onload,指示页面包含图片等文件在内的所有元素都加载完成。
5、为什么要使用document.ready()或者document.onload()
$(document).ready() 里的代码是在页面内容都加载完才执行的,如果把代码直接写到script标签里,当页面加载完这个script标签就会执行里边的代码了,此时如果你标签里执行的代码调用了当前还没加载过来的代码或者dom,那么就会报错,当然如果你把script标签放到页面最后面那么就没问题了,此时和ready效果一样。
6、document.ready()的使用场景
点击段落,此段落隐藏
<html>
<head>
<meta charset="utf-8">
<title>
test
</title>
<script src="https://cdn.bootcss.com/jquery/1.10.2/jquery.min.js"></script>
<script>
$(document).ready(function () {
$("p").click(function () {
$(this).hide();
});
});
</script>
</head>
<body>
<p>If you click on me,I will disappear.</p>
</body>
</html>
如果把$(document).ready(function(){});去掉后,无法隐藏段落
<html>
<head>
<meta charset="utf-8">
<title>
test
</title>
<script src="https://cdn.bootcss.com/jquery/1.10.2/jquery.min.js"></script>
<script>
$("p").click(function () {
$(this).hide();
});
</script>
</head>
<body>
<p>If you click on me,I will disappear.</p>
</body>
</html>
但是把script放到页面最后的话,就可恢复隐藏效果
<html>
<head>
<meta charset="utf-8">
<title>
test
</title>
<script src="https://cdn.bootcss.com/jquery/1.10.2/jquery.min.js"></script>
</head>
<body>
<p>If you click on me,I will disappear.</p>
<script>
$("p").click(function () {
$(this).hide();
});
</script>
</body>
</html>
细说document.ready和window.onload的更多相关文章
- jquery mobile在页面加载时添加加载中效果 document.ready 和window.onload执行顺序比较
想要添加这个效果,先来弄明白页面的加载和事件执行顺序,看这个简单例子: <html xmlns="http://www.w3.org/1999/xhtml"> < ...
- $(document).ready() 与 window.onload 之间的区别
1.执行时机 window.onload 是网页中所有的元素都加载到浏览器后才执行 $(document).ready() 是dom完全就续就可以调用 例如:如果给一副图片添加点击事件,window. ...
- jQuery $(document).ready()和window.onload
jQuery $(document).ready()和window.onload 根据ready()方法的API说明http://api.jquery.com/ready/. 这个方法接收一个func ...
- 转载jquery $(document).ready() 与window.onload的区别
jquery $(document).ready() 与window.onload的区别 投稿:mdxy-dxy 字体:[增加 减小] 类型:转载 时间:2009-12-28我要评论 Jquery中$ ...
- jQuery的$(window).load与、(document).ready和window.onload的关系
jQuery的$(window).load与.(document).ready和window.onload的关系 $(function() { console.log('document.ready ...
- $(document).ready()和window.onload之间的差异
最近使用$(document).ready(function(){})遇到一个问题:加载页面后发送数据请求后台,得到的数据不对,后发现请求后台时,发送的数据为空,没有获取到值导致的.------改成w ...
- $(document).ready和window.onload的区别
$(document).ready比window.onload先执行.window.onload只执行一次. $(document).ready和window.onload都是在都是在页面加载完执行的 ...
- 转 $(document).ready()与window.onload的区别
$(document).ready()和window.onload在表单上看都是页面加载时我们就去执行一个函数或动作,但是在具体的细节上$(document).ready()和window.onloa ...
- jQuery中的$(window).load()与$(document).ready()以及jquery $(document).ready() 与window.onload的区别
大多数jQuery实例或教程都告诉我们绑定我们的jQuery代码到$(document).ready事件.虽然$(document).ready 事件在大多数情况下都OK,但是它的解析顺序是在文档准备 ...
随机推荐
- double 失真例子
public static void main(String[] args) { // TODO Auto-generated method stub double ab=821.20; dou ...
- 【CS Round #39 (Div. 2 only) C】Reconstruct Sum
[Link]:https://csacademy.com/contest/round-39/task/reconstruct-sum/ [Description] 给你一个数字S; 让你找有多少对A, ...
- PatentTips - Transparent unification of virtual machines
BACKGROUND Virtualization technology enables a single host computer running a virtual machine monito ...
- poj3244(公式题)
Difference between Triplets Time Limit: 3000MS Memory Limit: 65536K Total Submissions: 2476 Acce ...
- 【剑指Offer面试题】九度OJ1384:二维数组中的查找
下决心AC全部剑指offer面试题. 九度OJ面试题地址:http://ac.jobdu.com/hhtproblems.php 书籍:何海涛--<剑指Offer:名企面试官精讲典型编程题> ...
- regular-第一课(正则表达式基础)
之前一直听说正则表达式,尤其是在学习java的时候,遇到了不少关于正则表达式的用法.例如一个输入框,你可以使用正则表达式限制输入的内容.当然,在android以后,正则表达式就几乎没有怎么用了.不过呢 ...
- C# 中 int、Convert.ToInt32()、int.Parse()的区别
int适合简单数据类型之间的转换,C#的默认整型是int32(不支持bool型); int.Parse(string sParameter)是个构造函数,参数类型只支持string类型; Conver ...
- BZOJ1009: [HNOI2008]GT考试(KMP+矩阵乘法)
Description 阿申准备报名参加GT考试,准考证号为N位数X1X2....Xn(0<=Xi<=9),他不希望准考证号上出现不吉利的数字.他的不吉利数学A1A2...Am(0< ...
- Windows平台上的pip安装
写在前面 pip 是 Python 的包管理工具,在 Python 开发中必不可少.作为一名python菜鸟,本文在踩坑无数的基础上尽可能详细地解释pip的安装过程.在安装之前需要明确两点: 1.pi ...
- vmware workstation15.1.0下载地址及密钥(亲测可用)
官网下载链接: https://download3.vmware.com/software/wkst/file/VMware-workstation-full-15.1.0-13591040.exe ...