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代码
Nov 09 Javascript
jquery高效反选具体实现
May 05 Javascript
js和jquery中循环的退出和继续下一个循环
Sep 03 Javascript
JavaScript表格常用操作方法汇总
Apr 15 Javascript
分享10个原生JavaScript技巧
Apr 20 Javascript
HTML5基于Tomcat 7.0实现WebSocket连接并实现简单的实时聊天
Oct 31 Javascript
Angular2平滑升级到Angular4的步骤详解
Mar 29 Javascript
微信小程序 开发MAP(地图)实例详解
Jun 27 Javascript
AngularJS通过ng-Img-Crop实现头像截取的示例
Aug 17 Javascript
详解vue 路由跳转四种方式 (带参数)
Apr 28 Javascript
vue 使用async写数字动态加载效果案例
Jul 18 Javascript
js数组中去除重复值的几种方法
Aug 03 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应用提速面面观
2006/10/09 PHP
PHP+MYSQL开发工具及资源收藏
2007/01/02 PHP
php daodb插入、更新与删除数据
2009/03/19 PHP
PHP文件上传原理简单分析
2011/05/29 PHP
使用php语句将数据库*.sql文件导入数据库
2014/05/05 PHP
PHP函数extension_loaded()用法实例
2015/01/19 PHP
php安装ssh2扩展的方法【Linux平台】
2016/07/20 PHP
判断页面是关闭还是刷新的js代码
2007/01/28 Javascript
JS解密入门 最终变量劫持
2008/06/25 Javascript
nodejs入门详解(多篇文章结合)
2012/03/07 NodeJs
javascript使用正则控制input输入框允许输入的值方法大全
2014/06/19 Javascript
JavaScript获取鼠标移动时的坐标(兼容IE8、chome谷歌、Firefox)
2014/09/13 Javascript
jQuery实现炫酷的鼠标轨迹特效
2015/02/01 Javascript
js中string和number类型互转换技巧(分享)
2016/11/28 Javascript
浅谈JavaScript中的apply/call/bind和this的使用
2017/02/26 Javascript
基于HTML5+JS实现本地图片裁剪并上传功能
2017/03/24 Javascript
Node.js学习之TCP/IP数据通讯(实例讲解)
2017/10/11 Javascript
详解Vue项目编译后部署在非网站根目录的解决方案
2018/04/26 Javascript
小程序双头slider选择器的实现示例
2020/03/31 Javascript
基于JavaScript或jQuery实现网站夜间/高亮模式
2020/05/30 jQuery
三剑客:offset、client和scroll还傻傻分不清?
2020/12/04 Javascript
[02:27]刀塔重生降临
2015/10/14 DOTA
王纯业的Python学习笔记 下载
2007/02/10 Python
Python Queue模块详解
2014/11/30 Python
python在html中插入简单的代码并加上时间戳的方法
2018/10/16 Python
Python帮你微信头像任意添加装饰别再@微信官方了
2019/09/25 Python
python接口自动化之ConfigParser配置文件的使用详解
2020/08/03 Python
基于 Python 实践感知器分类算法
2021/01/07 Python
详解pandas apply 并行处理的几种方法
2021/02/24 Python
Nike澳大利亚官网:Nike.com (AU)
2019/06/03 全球购物
Timberland俄罗斯官方网上商店:全球领先的户外品牌
2020/03/15 全球购物
Java中实现多态的机制
2015/08/09 面试题
一些Unix笔试题和面试题
2012/09/25 面试题
乡镇三项教育实施方案
2014/03/30 职场文书
毕业生实习期转正自我鉴定
2014/09/26 职场文书
Apache Kafka 分区重分配的实现原理解析
2022/07/15 Servers