精通HTML页面的生命周期

HTML有四个重要的生命周期事件:

DOMContentLoaded:DOM 完全加载以及解析时触发,而无需等 <img> /样式表/子框架里外部资源加载完成。此时可以查找DOM 节点,并初始化接口。在用户允许的前提下,Firefox,Chrome 和 Opera 都会在 DOMContentLoaded 触发时自动填充表单。

DOMContentLoaded和脚本的关系:

DOMContentLoaded和样式关系:

load:整个页面及所有依赖资源如样式表和图片都已完成加载时触发,此时才可以正确获取图片大小。可以通过onload或事件字符串load监听事件。该事件不可取消,同时所有以load 命名的事件都不会传递到 Window 上即load事件不会冒泡。

beforeunload:当用户离开页面的导航(navigation)或试图关闭窗口或刷新时存触发(弹出一个确认对话框),询问用户是否真的要离开该页面。如果用户确认,浏览器将导航到新页面,否则导航将会取消,也就不会出发pagehide和unload事件。此事件中可以检查用户是否保存了更改,并询问是否真的要离开,beforeunload目前已经不支持自定义显示给用户的消息。

unload:当页面或一个子框架正在被卸载时,触发 unload事件,此时页面处于以下状态:所有资源仍存在 (图片,iframe等),对于终端用户所有资源均不可见,界面交互无效 (window.open, alert, confirm 等),错误不会停止卸载页面的过程。该事件不可取消,不可冒泡,且在 beforeunload和pagehide事件之后执行,且父框架在子框架卸载前卸载。在该事件中建议可以使用navigator.sendBeacon(url, data)将和用户相关的分析统计数据发送到服务器保存:

Document.readystate:描述了 document 的加载状态,状态改变的时触发readystatechange 事件。存在三种状态:loading(加载中)--正在加载中;interactive(可交互)-- document加载状态结束,但图像,样式表和框架之类的子资源仍在加载,DOMContentLoaded事件即将触发;complete(已完成)--document 和所有子资源已完成加载,window.onload事件即将触发。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

薛定谔的猫96

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值