页面加载的事件

Document.readyState 属性描述了document 的加载状态。所以要特别注意下面的两个事件“readystatechange”和“DOMContentLoaded”是通过document监听的;load事件是window的事件!

语法:返回的是三种状态字符串

var string = document.readyState;

一个文档的 readyState 可以是以下之一:

loading(正在加载):document 仍在加载。

interactive(可交互):文档已被解析,"正在加载"状态结束,但是诸如图像,样式表和框架之类的子资源仍在加载。

complete(完成):文档和所有子资源已完成加载。表示 load 状态的事件即将被触发。

 readystatechange事件监听readyState值的变化:

document.onreadystatechange = function () {
            console.log(document.readyState)
        }

 Document.readyState值对应页面加载状态和事件

        switch (document.readyState) {
            case "loading":
                // 表示文档还在加载中,即处于“正在加载”状态。
                console.log("loading")
                break;
            case "interactive":
                // DOM元素可以被访问,但是像图像,样式表和框架等资源依然还在加载。
                //所以是“可交互”,可以操作DOM
                //对应DOMContentLoaded事件
                console.log("interactive")
                break;
            case "complete":
                // 页面所有内容都已被完全加载.
                // 对应load事件
                console.log("complete");
                break;
        }

同时监听这三个事件,看事件的执行顺序:

        document.onreadystatechange = function () {
            console.log(document.readyState)
        }

        document.addEventListener('DOMContentLoaded', (event) => {
            console.log("DOMContentLoaded"); // 译者注:"DOM完全加载以及解析"
        });

        window.addEventListener('load', (event) => {
            console.log("load");
        });

结果:

模拟 DOMContentLoaded事件或jQuery.ready()方法:

        document.onreadystatechange = function () {
            if (document.readyState === "interactive") {
                initApplication();
            }
        }

模拟 load 事件:

document.onreadystatechange = function () {
            if (document.readyState === "complete") {
                initApplication();
            }
        }

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值