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 相关文章推荐
JS实现的打字机效果完整实例
Jun 20 Javascript
一个仿微博登陆邮箱提示框js开发案例
Jul 28 Javascript
手动初始化Angular的模块与控制器
Dec 26 Javascript
浅谈Angular2 模块懒加载的方法
Oct 04 Javascript
js中如何完美的解析数据
Mar 18 Javascript
JS实现匀速与减速缓慢运动的动画效果封装示例
Aug 27 Javascript
Jquery和CSS实现选择框重置按钮功能
Nov 08 jQuery
一份超级详细的Vue-cli3.0使用教程【推荐】
Nov 15 Javascript
在Vue中使用icon 字体图标的方法
Jun 14 Javascript
浅谈JavaScript中this的指向更改
Jul 28 Javascript
原生JS生成指定位数的验证码
Oct 28 Javascript
微信小程序自定义胶囊样式
Dec 27 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
PHP4和PHP5性能测试和对比 测试代码与环境
2007/08/17 PHP
php生成随机密码的三种方法小结
2010/09/04 PHP
把1316这个数表示成两个数的和,其中一个为13的倍数,另一个是11的倍数,求这两个数。
2011/06/24 PHP
php实现把数组按指定的个数分隔
2014/02/17 PHP
PHP字符串比较函数strcmp()和strcasecmp()使用总结
2014/11/19 PHP
PHP内核探索之解释器的执行过程
2015/12/22 PHP
PHP 获取客户端 IP 地址的方法实例代码
2018/11/11 PHP
Laravel5.5 手动分页和自定义分页样式的简单实现
2019/10/15 PHP
了解了这些才能开始发挥jQuery的威力
2013/10/10 Javascript
JQuery给select添加/删除节点的实现代码
2016/04/26 Javascript
js 作用域和变量详解
2017/02/16 Javascript
移动端利用H5实现压缩图片上传功能
2017/03/29 Javascript
浅谈JS获取元素的N种方法及其动静态讨论
2017/08/25 Javascript
Element input树型下拉框的实现代码
2018/12/21 Javascript
nodejs 使用http进行post或get请求的实例(携带cookie)
2019/01/03 NodeJs
JAVA面试题 static关键字详解
2019/07/16 Javascript
three.js欧拉角和四元数的使用方法
2020/07/26 Javascript
vue3为什么要用proxy替代defineProperty
2020/10/19 Javascript
python函数形参用法实例分析
2015/08/04 Python
Python中的Descriptor描述符学习教程
2016/06/02 Python
Django查询数据库的性能优化示例代码
2017/09/24 Python
python中文分词教程之前向最大正向匹配算法详解
2017/11/02 Python
Python设计模式之职责链模式原理与用法实例分析
2019/01/11 Python
django 数据库 get_or_create函数返回值是tuple的问题
2020/05/15 Python
Python常见反爬虫机制解决方案
2020/06/01 Python
详解HTML5通讯录获取指定多个人的信息
2016/12/20 HTML / CSS
法国低价在线宠物商店:bitiba.fr
2020/07/03 全球购物
EJB的基本架构
2016/09/22 面试题
经典商业广告词
2014/03/13 职场文书
厨师个人自我鉴定范文
2014/04/19 职场文书
2014年反腐倡廉工作总结
2014/12/05 职场文书
2015年先进个人自荐书
2015/03/24 职场文书
社区党务工作总结2015
2015/05/19 职场文书
开学随笔
2015/08/15 职场文书
公务员爱岗敬业心得体会
2016/01/25 职场文书
中学教代会开幕词
2016/03/04 职场文书