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 相关文章推荐
jQuery 创建Dom元素
May 07 Javascript
niceTitle 基于jquery的超链接提示插件
May 31 Javascript
js查错流程归纳
May 04 Javascript
JQuery实现动态适时改变字体颜色的方法
Mar 10 Javascript
JavaScript实现弹出DIV层同时页面背景渐变成半透明效果
Mar 25 Javascript
js从输入框读取内容,比较两个数字的大小方法
Mar 13 Javascript
详解AngularJS 模块化
Jun 14 Javascript
微信小程序实现通过双向滑动缩放图片大小的方法
Dec 30 Javascript
转换layUI的数据表格中的日期格式方法
Sep 19 Javascript
layui点击弹框页面 表单请求的方法
Sep 21 Javascript
vue-cli4项目开启eslint保存时自动格式问题
Jul 13 Javascript
解决vue项目input输入框双向绑定数据不实时生效问题
Aug 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面向对象分析设计的经验原则
2008/09/20 PHP
10条PHP编程习惯助你找工作
2008/09/29 PHP
用 Composer构建自己的 PHP 框架之构建路由
2014/10/30 PHP
浅谈php+phpStorm+xdebug配置方法
2015/09/17 PHP
Laravel如何同时连接多个数据库详解
2019/08/13 PHP
php 下 html5 XHR2 + FormData + File API 上传文件操作实例分析
2020/02/28 PHP
js 鼠标点击事件及其它捕获
2009/06/04 Javascript
javascript 关于# 和 void的区别分析
2009/10/26 Javascript
javascript JSON操作入门实例
2010/04/16 Javascript
JavaScript中的isXX系列是否继续使用的分析
2011/04/16 Javascript
jquery实现漂浮在网页右侧的qq在线客服插件示例
2013/05/13 Javascript
javascript获取xml节点的最大值(实现代码)
2013/12/11 Javascript
jQuery中change事件用法实例
2014/12/26 Javascript
AngularJS的ng-repeat指令与scope继承关系实例详解
2017/01/21 Javascript
jQuery列表检索功能实现代码
2017/07/17 jQuery
浅谈sass在vue注意的地方
2017/08/10 Javascript
JavaScript编程设计模式之构造器模式实例分析
2017/10/25 Javascript
JavaScript实现的反序列化json字符串操作示例
2018/07/18 Javascript
angular6的响应式表单的实现
2018/10/10 Javascript
10个最受欢迎的 JavaScript框架(推荐)
2019/04/24 Javascript
Vue程序调试的方法
2019/06/17 Javascript
VUE+node(express)实现前后端分离
2019/10/13 Javascript
vue 实现用户登录方式的切换功能
2020/04/14 Javascript
Python 正则表达式实现计算器功能
2017/04/29 Python
Python模拟用户登录验证
2017/09/11 Python
详解python3中的真值测试
2018/08/13 Python
Python HTMLTestRunner库安装过程解析
2020/05/25 Python
Python关于拓扑排序知识点讲解
2021/01/04 Python
如何用Python来进行查询和替换一个文本字符串
2014/01/02 面试题
园林施工员岗位职责
2013/12/11 职场文书
九月份红领巾广播稿
2014/01/22 职场文书
搞笑婚礼主持词
2014/03/13 职场文书
安全生产月活动总结
2014/05/04 职场文书
银行领导班子四风对照检查材料
2014/09/27 职场文书
党委工作总结2015
2015/04/27 职场文书
Python如何利用pandas读取csv数据并绘图
2022/07/07 Python