js页面加载后执行的几种方式小结


Posted in Javascript onJanuary 30, 2020

在实际应用中往往需要在页面加载完毕之后再去执行相关的js代码,之所以这么操作是有道理的,如果是操作dom元素,如果相关元素没有加载完成,而去执行js代码,可能会导致错误,下面就介绍一下如何实现页面加载完成再去执行代码,这是最为基础的知识了,可能初学者还不太了解,寄希望能够给需要的朋友带来一定帮助。

一.window.onload事件:

代码如下:

原生js

window.onload=function(){
 //code
}

jquery

$(window).load(function(){
//code
});

当页面完全加载完毕之后再去执行code代码。说明页面需要dom操作,必须到最后才可以执行。

二.使用jQuery的ready事件:

$(document).ready(function() { 
 //code
});

一般

(function () {
//code
}
})();

当稳当结构加载完毕再去执行code代码。

通用的页面加载后再运行JS有两种方式:1、在DOM加载完毕后,页面全部内容(如图片等)完全加载完毕前运行JS。 2、在页面全部内容加载完成(包括引用文件,图片等)之后再加载JS

1、在DOM加载后,全部内容加载前运行
这种方式在同一文件中可以运行多个且不会覆盖。

由于在$(document).ready()方法只要DOM就绪就会被执行,因此可能此时元素的关联文件未下载完。例如与图片有关的HTML下载完毕,并且已经解析为DOM树了,但很有可能图片还未加载完毕,所以例如图片的高度和宽度这样的属性此时不一定有效。要解决这个问题,可以使用Jquery中 load()方法在需要的文件加载完毕后对其进行操作。

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

//简写 当$()不带参数时默认就是document
$(function(){});

//简写

2、在全部内容加载后运行
这种方式中只能执行一个 onload代码,当文件由多个onload或者load,只加载最后一个,前面的将会被覆盖且前面的onload里面的代码不会执行。

window.onload = function(){}; // —-js
$(window).load(function(){});

//---jquery

3、DOM文档加载步骤

1.解析HTML结构
2.加载外部的脚本和样式文件
3.解析并执行脚本代码
4.执行$(function(){})内对应代码
5.加载图片等二进制资源
6.页面加载完毕,执行window.onload

补充:

1:$(function){};

2:$(document).ready(function(){});

3:$(window).load(function(){});

4:window.onload = function(){};

5:在标签上静态绑定onload事件,<body onload="aaa()">等待body加载完成,就会执行aaa()方法。

注:第1种是第2种的简写方式。两个是document加载完成后就执行方法。第3种和第4种都是等到整个window加载完成执行方法体。两者也没有区别,只是一个使用dom对象,一个使用jQuery对象。

执行顺序:1和2无论放在哪里都是最先执行,3和4在其之后执行,5最后执行

Javascript 相关文章推荐
JavaScript实现Sleep函数的代码
Mar 04 Javascript
javascript hashtable 修正版 下载
Dec 30 Javascript
Jquery解析Json格式数据过程代码
Oct 17 Javascript
JavaScript中通过提示框跳转页面的方法
Feb 14 Javascript
JavaScript模版引擎的基本实现方法浅析
Feb 15 Javascript
JS判断字符串字节数并截取长度的方法
Mar 05 Javascript
js实现背景图自适应窗口大小
Jan 10 Javascript
React如何利用相对于根目录进行引用组件详解
Oct 09 Javascript
快速解决brew安装特定版本flow的问题
May 17 Javascript
JavaScript中为事件指定处理程序的五种方式分析
Jul 27 Javascript
JS实现简单的文字无缝上下滚动功能示例
Jun 22 Javascript
原生js实现随机点名
Jul 05 Javascript
javascript设计模式之装饰者模式
Jan 30 #Javascript
原生js+ajax分页组件
Jan 30 #Javascript
javascript设计模式之迭代器模式
Jan 30 #Javascript
通过Kettle自定义jar包供javascript使用
Jan 29 #Javascript
用js限制网页只在微信浏览器中打开(或者只能手机端访问)
Dec 24 #Javascript
vue引用外部JS的两种种方法
Jan 28 #Javascript
Java Varargs 可变参数用法详解
Jan 28 #Javascript
You might like
PHP学习 变量使用总结
2011/03/24 PHP
php使用fopen创建utf8编码文件的方法
2014/10/31 PHP
PHP安装threads多线程扩展基础教程
2015/11/17 PHP
微信支付开发告警通知实例
2016/07/12 PHP
PHP获取redis里不存在的6位随机数应用示例【设置24小时过时】
2017/06/07 PHP
PHP中PCRE正则解析代码详解
2019/04/26 PHP
jQuery中的.bind()、.live()和.delegate()之间区别分析
2011/06/08 Javascript
基于jquery tab切换(防止页面刷新)
2012/05/23 Javascript
当jQuery1.7遇上focus方法的问题
2014/01/26 Javascript
jQuery判断checkbox是否选中的3种方法
2014/08/12 Javascript
html的DOM中document对象images集合用法实例
2015/01/21 Javascript
JavaScript实现数组在指定位置插入若干元素的方法
2015/04/06 Javascript
JavaScript中this的四个绑定规则总结
2016/09/26 Javascript
JS扩展类,克隆对象与混合类实例分析
2016/11/26 Javascript
ES6新特性:使用export和import实现模块化详解
2017/07/31 Javascript
关于meta viewport中target-densitydpi属性详解(推荐)
2017/08/18 Javascript
讲解vue-router之命名路由和命名视图
2018/05/28 Javascript
微信小程序之事件交互操作实例分析
2018/12/03 Javascript
jquery+css实现Tab栏切换的代码实例
2019/05/14 jQuery
javascript实现倒计时关闭广告
2021/02/09 Javascript
让 python 命令行也可以自动补全
2014/11/30 Python
Django imgareaselect手动剪切头像实现方法
2015/05/26 Python
深入解析Python中的lambda表达式的用法
2015/08/28 Python
在django中使用自定义标签实现分页功能
2017/07/04 Python
Python字典生成式、集合生成式、生成器用法实例分析
2020/01/07 Python
Python matplotlib图例放在外侧保存时显示不完整问题解决
2020/07/28 Python
python线程优先级队列知识点总结
2021/02/28 Python
CSS3实现3D翻书效果
2016/06/20 HTML / CSS
Hello Molly美国:女性时尚在线
2019/08/26 全球购物
商务助理岗位职责
2013/11/13 职场文书
校长岗位职责
2013/11/26 职场文书
县优秀教师事迹材料
2014/01/31 职场文书
面试后的感谢信范文
2014/02/01 职场文书
2014年汽车销售工作总结
2014/12/01 职场文书
学校运动会通讯稿
2015/07/18 职场文书
浅谈JavaScript作用域
2021/12/06 Javascript