BOM常见方法

简介: BOM常见的方法window对象常见的事件窗口加载事件onload

BOM常见的方法

window对象常见的事件

窗口加载事件onload

window.onload = function(){}
或者
window.addEventListener('load', function(){})
复制代码

window.onload是窗口(页面)加载事件,党文档内容(图像、脚本文件、css、文件)完全加载完成之后,才会触发该函数。

通过onload事件,我们就可以将js代码写在页面元素的上面了,这样就不会因为页面元素还没有加载完毕,导致js代码失效的问题。

注意:

window.onload传统注册事件的方法只能写一次,如果有多个,那么只会一最后一个window.onload为准生效。

但是如果使用方法监听绑定事件的方式,那么就可以写多个window.onload。不会有限制。

窗口加载事件DOMContentLoaded

window.addEventListener('DOMContentLoaded', function(){})
复制代码

DOMContentLoaded是DOM内容加载完成之后触发的事件,不会等待样式表、图像、子框架的加载。

在实际开发中,我们可能会遇到这样一个问题:某一个页面的图片特别多,要是等待页面全部加载完毕之后,再加载用户的交互代码,这样等待的时间太长,会造成不好的用户体验。

DOMContentLoaded就是为了解决这个问题而出现的。

窗口大小改变事件onresize

window.onresize = function(){}
或者
window.addEventListener('resize', function(){})
复制代码

当浏览器的窗口大小发生变化的时候,就会触发该事件(函数处理)。

我们可以利用这个事件来完成事件响应式布局。window.innerWidth(宽度)和window.innerHeight(高度)可以获取到当前窗口的宽度和高度。

定时器

  • setTimeout():定时器,只执行一次
    window.setTimeout(function(){}, 1000)// 1000毫秒后执行
    setInterval(function(){}, 1000)

setTimeout()方法用于设置一个定时器,该定时器到时间之后执行调用函数。(window可以省略)

setTimeout()的函数可以直接写函数,也可以写函数名来调用函数。

setTimeout()调用的这个函数我们称作回调函数,普通的函数,我们都是按照代码顺序直接调用,但是在setTimeout()里面,这个函数需要等待的时间结束之后,采取调用这个函数,就是时间结束之后,再回过头去调用这个函数。

页面中,可能有多个定时器,为了防止混淆,我们经常会将定时器的id保存起来,以便后面使用。

var timer = setTimeout(function(){}, 1000)
复制代码

停止定时器

window.clearTimeout(定时器名字)// 清除定时器
    (window可以省略)
复制代码
  • setInterval():定时器,可以重复执行
window.setInterval(回调函数,间隔时间);
复制代码

每隔设定的间隔时间,就去调用一次回调函数。(重复调用这个函数)

停止定时器

window.clearInterval(定时器名字)// 清除定时器
    (window可以省略)


相关文章
|
机器学习/深度学习
【元学习meta-learning】通俗易懂讲解元学习以及与监督学习的区别
本文通过通俗易懂的方式解释了元学习(Meta-learning)的概念及其与传统监督学习的区别,并通过实例说明了元学习是如何让模型具备快速学习新任务的能力。
2396 1
|
安全 Linux 调度
倚天虚拟化:CPU虚拟化原理介绍
虚拟化技术中最关键的技术之一就是CPU虚拟化。在没有硬件辅助虚拟化技术出来之前,通常都是通过TCG(软件进行指令翻译)的方式实现CPU虚拟化。但是由于TCG方式的虚拟化层开销太大,性能太差,因此引入了硬件辅助虚拟化技术。
2017 1
|
监控 Java 应用服务中间件
zabbix tomcat模板
zabbix提供了一个java gateway的应用去监控jmx(Java Management Extensions,即Java管理扩展)是一个为应用程序、设备、系统等植入管理功能的框架。
1575 0
|
2天前
|
云安全 人工智能 安全
AI被攻击怎么办?
阿里云提供 AI 全栈安全能力,其中对网络攻击的主动识别、智能阻断与快速响应构成其核心防线,依托原生安全防护为客户筑牢免疫屏障。
|
12天前
|
域名解析 人工智能
【实操攻略】手把手教学,免费领取.CN域名
即日起至2025年12月31日,购买万小智AI建站或云·企业官网,每单可免费领1个.CN域名首年!跟我了解领取攻略吧~
|
6天前
|
安全 Java Android开发
深度解析 Android 崩溃捕获原理及从崩溃到归因的闭环实践
崩溃堆栈全是 a.b.c?Native 错误查不到行号?本文详解 Android 崩溃采集全链路原理,教你如何把“天书”变“说明书”。RUM SDK 已支持一键接入。
488 201