• 面试准备(6)js基础


    js的事件流模型

    “事件冒泡”: 事件开始由具体的元素接受,然后逐级向上传播

    “事件捕捉”:事件由不具体的节点接收,然后逐级向下,一直到具体的

    DOM事件流

    • 事件捕捉

    • 目标阶段

    • 事件冒泡

    浏览器对象模型BOM里常用的对象。

    • window js的最顶层对象

    • document 文档对象

    • location 浏览器当前url信息

    • screen 客户端屏幕信息

    • history 浏览器访问历史信息

    • navigator 浏览器本身信息

    window对象的常用方法

    • alert()

    • confirm()

    • prompt()

    • open()

    • close()

    什么是requestIdleCallback?

    当关注用户体验,不希望因为一些不重要的任务(如统计上报)导致用户感觉到卡顿的话,

    就应该考虑使用requestIdleCallback。因为requestIdleCallback回调的执行的前提条件是当前浏览器处于空闲状态。

    requestIdleCallback用法示例

        requestIdelCallback(myNonEssentialWork);
        
        
        function myNonEssentialWork (deadline) {
        
          // deadline.timeRemaining()可以获取到当前帧剩余时间
          while (deadline.timeRemaining() > 0 && tasks.length > 0) {
            doWorkIfNeeded();
          }
          if (tasks.length > 0){
            requestIdleCallback(myNonEssentialWork);
          }
        }
    
    

    总结

    一些低优先级的任务可使用 requestIdleCallback 等浏览器不忙的时候来执行,

    同时因为时间有限,它所执行的任务应该尽量是能够量化,细分的微任务(micro task)

    所以不建议在 requestIdleCallback 里再操作 DOM,这样会导致页面再次重绘。

    浏览器的渲染过程

    • | 构建DOM树

    • | 构建CSSOM树

    • | 构建渲染树

    • | 渲染树布局

    • | 渲染树绘制到页面

    1. 浏览器将获取的HTML文档解析成DOM树。

    2. 处理CSS标记,构成层叠样式表模型CSSOM(CSS Object Model)。

    3. 将DOM和CSSOM合并为渲染树(rendering tree),代表一系列将被渲染的对象。

    4. 渲染树的每个元素包含的内容都是计算过的,它被称之为布局layout。

      浏览器使用一种流式处理的方法,只需要一次绘制操作就可以布局所有的元素。

    5. 将渲染树的各个节点绘制到屏幕上,这一步被称为绘制painting

    关键渲染路径

    在首屏渲染中必须发生事件。

    详细解释

  • 相关阅读:
    Spring第一次测试错题解析
    正则回顾
    Spring经典---AOP
    动态代理
    MyBatis第一次测试卷---错题分析
    JS中对数组元素进行增删改移
    限制条件补全代码系列题
    字符串去空格
    数组去重
    数组排序
  • 原文地址:https://www.cnblogs.com/loveliang/p/13920513.html
Copyright © 2020-2023  润新知