jq的$(function(){})与window.onload的区别
2024-08-25 09:31:24
最近一直在研究jq的源码,书写jq的代码我们通常会包裹在一个$(function(){})
函数中,
jq的$(function(){})
也就是$(document).ready(function(){})
的简写,与之对应的原生js的window.onload
事件,这俩者之间到底有什么区别呢?
$(function () {
console.log("ready执行");
});
$(function() {
console.log("ready1执行");
});
window.onload = function () {
console.log('load执行');
};
window.onload = function () {
console.log('load1执行');
}
我们来看一下控制台中输出的结果:
这里可以看出两点不同:
1.$(function(){})
不会被覆盖,而window.onload
会被覆盖,个人感觉$(function(){})
不会被覆盖的原因是将其放入到了一个队列中,在对应时机一次出队。
2. $(function(){})
在window.onload
执行前执行的,$(function(){})
类似于原生js中的DOMContentLoaded
事件,在DOM加载完毕后,页面全部内容(如图片等)完全加载完毕前被执行。而window.onload
会在页面资源全部加载完毕后才会执行。
DOM文档加载步骤:
1.解析HTML结构
2.加载外部的脚本和样式文件
3.解析并执行脚本代码
4.执行$(function(){})
内对应代码
5.加载图片等二进制资源
6.页面加载完毕,执行window.onload
最新文章
- IE9 IE8 ajax跨域问题的解决
- MVC5 + EF6 + Bootstrap3 (16) 客户端验证
- Codeforces Round #381(div 2)
- iOS-策略模式
- 跟着百度学PHP[2]-foreach条件嵌套
- eclipse 利用已有c++代码建工程,并编译执行
- SQL 去特殊字符
- 实现WMSservice的时候,出现边缘的点或icon被切断的情况
- Jquery Ajax的时候 老是返回到 error,是因为json格式不正规的原因
- 跟我一起学extjs5(17--Grid金额字段单位MVVM方式的选择)
- haproxy 超时机制
- python—webshell_醉清风xf_新浪博客
- 6月27日CTO俱乐部下午茶印象
- java使用Base64编码和解码的图像文件
- mybatis 总结(1)
- SecureCRT 密钥生成 SSH 使用密钥登陆 服务器
- Linux在线安装git(亲测成功)
- 玩转SSH端口转发
- 2015211230108《Java程序设计》第10周学习总结
- JDBC操作MySQL数据
热门文章
- makefile--嵌套执行(四)
- MFC 小知识总结五
- git 提交代码出现git Permission to Xx denied to Xx 错误
- 教你一招解决浏览器兼容问题(PostCSS的使用)
- Spring学习笔记--通过构造方法创建Bean
- 【CSS系列】块级元素和行内元素
- 【Java nio】java nio笔记
- getOwnPropertyNames() &; keys()
- Android Activity与Fragment生命周期
- Ubuntu adb devices :???????????? no permissions (verify udev rules) 解决方法