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 相关文章推荐
location.search在客户端获取Url参数的方法
Jun 08 Javascript
JavaScript 代码压缩工具小结
Feb 27 Javascript
js 实现日期灵活格式化的小例子
Jul 14 Javascript
jquery 按钮状态效果 正常、移上、按下
Aug 12 Javascript
基于jQuery实现左右图片轮播(原理通用)
Dec 24 Javascript
浅谈javascript alert和confirm的美化
Dec 15 Javascript
Angular 2 ngForm中的ngModel、[ngModel]和[(ngModel)]的写法
Jun 29 Javascript
基于Bootstrap的标签页组件及bootstrap-tab使用说明
Jul 25 Javascript
Vue 实现一个命令式弹窗组件功能
Sep 25 Javascript
javascript随机变色实例代码
Oct 15 Javascript
JS实现transform实现扇子效果
Jan 17 Javascript
vue中音频wavesurfer.js的使用方法
Feb 20 Vue.js
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多个字符串替换成同一个的解决方法
2013/06/18 PHP
PHP将进程作为守护进程的方法
2015/03/19 PHP
学习php设计模式 php实现装饰器模式(decorator)
2015/12/07 PHP
PHP5.5安装PHPRedis扩展及连接测试方法
2017/01/22 PHP
php设计模式之原型模式分析【星际争霸游戏案例】
2020/03/23 PHP
js常见表单应用技巧
2008/01/09 Javascript
基于JQuery 滑动与动画的说明介绍
2013/04/18 Javascript
javascript中数组的sort()方法的使用介绍
2013/12/18 Javascript
js定时器(执行一次、重复执行)
2014/03/07 Javascript
学习javascript面向对象 实例讲解面向对象选项卡
2016/01/04 Javascript
神奇!js+CSS+DIV实现文字颜色渐变效果
2016/03/16 Javascript
ES6中module模块化开发实例浅析
2017/04/06 Javascript
基于vue 添加axios组件,解决post传参数为null的问题
2018/03/05 Javascript
JavaScript执行环境及作用域链实例分析
2018/08/01 Javascript
iview通过Dropdown(下拉菜单)实现的右键菜单
2018/10/26 Javascript
一文看懂如何简单实现节流函数和防抖函数
2019/09/05 Javascript
[01:27:44]DOTA2-DPC中国联赛 正赛 PSG.LGD vs Aster BO3 第一场 1月24日
2021/03/11 DOTA
Python的Tornado框架异步编程入门实例
2015/04/24 Python
实例讲解Python中global语句下全局变量的值的修改
2016/06/16 Python
Python实现Sqlite将字段当做索引进行查询的方法
2016/07/21 Python
Python 两个列表的差集、并集和交集实现代码
2016/09/21 Python
老生常谈Python之装饰器、迭代器和生成器
2017/07/26 Python
Python管理Windows服务小脚本
2018/03/12 Python
Django自定义用户认证示例详解
2018/03/14 Python
Python爬虫HTPP请求方法有哪些
2020/06/03 Python
利用Python pandas对Excel进行合并的方法示例
2020/11/04 Python
python Autopep8实现按PEP8风格自动排版Python代码
2021/03/02 Python
HTML5视频支持检测(检查浏览器是否支持视频播放)
2013/06/08 HTML / CSS
计算机专业毕业生的自我评价
2013/11/18 职场文书
《小石潭记》教学反思
2014/02/13 职场文书
《可爱的动物》教学反思
2014/02/22 职场文书
市场营销调查计划书
2014/05/02 职场文书
新农村建设标语
2014/06/24 职场文书
2014班子“三严三实”对照检查材料思想汇报
2014/09/18 职场文书
新员工试用期工作总结2015
2015/05/28 职场文书
工作证明书
2015/06/15 职场文书