zepto ready实现疑问

发布于 2022-08-31 09:28:17 字数 464 浏览 14 评论 0

先看实现源码:

javascript    var readyReg = /complete|loaded|interactive/; 
    var ready = function(callback) {
        if (readyReg.test(document.readyState) && document.body) {
            callback();
        } else {
            document.addEventListener('DOMContentLoaded', function() {
                callback();
            }, false);
        }
    };

代码我稍微动了下,但逻辑一致。
为啥要第一个if判断呢?也就是说,这是针对哪种情形的?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

九局 2022-09-07 09:28:17

判断是dom是否已经ready,如果已经ready,就直接执行给定的函数,如果没有ready,再注册监听器

如果已经ready的情况下 再去注册监听器,就永远不会触发执行了

归途 2022-09-07 09:28:17
readyReg.test(document.readyState)
测试(文档的readyState属性)是否为 complete|loaded|interactive 中的一个?

测试失败?认为没有ready,进入 else

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文