我的编程空间,编程开发者的网络收藏夹
学习永远不晚

PerformanceObserver如何自动获取首屏时间

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

PerformanceObserver如何自动获取首屏时间

这篇“PerformanceObserver如何自动获取首屏时间”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“PerformanceObserver如何自动获取首屏时间”文章吧。

    介绍

    PerformanceObserver 可用于获取性能相关的数据,例如首帧fp首屏fcp首次有意义的绘制 fmp等等。

    构造函数

    PerformanceObserver() 创建并返回一个新的 PerformanceObserver 对象。

    提供的方法

    PerformanceObserver.observe()

    当记录的性能指标在指定的 entryTypes 之中时,将调用性能观察器的回调函数。

    PerformanceObserver.disconnect()

    停止性能观察者回调接收到性能指标。

    PerformanceObserver.takeRecords()

    返回存储在性能观察器中的性能指标的列表,并将其清空。

    重点我们看看observer.observe(options);

    options

    一个只装了单个键值对的对象,该键值对的键名规定为 entryTypes。entryTypes 的取值要求如下:

    entryTypes 的值:一个放字符串的数组,字符串的有效值取值在性能条目类型 中有详细列出。如果其中的某个字符串取的值无效,浏览器会自动忽略它。

    另:若未传入 options 实参,或传入的 options 实参为空数组,会抛出 TypeError。

    实例

    <script>const observer = new PerformanceObserver((list) => {for(const entry of list.getEntries()){console.groupCollapsed(entry.name);console.log(entry.entryType);console.log(entry.startTime);console.log(entry.duration);console.groupEnd(entry.name);}})observer.observe({entryTypes:['longtask','frame','navigation','resource','mark','measure','paint']});</script>

    获取结果

    PerformanceObserver如何自动获取首屏时间

    根据打印结果我们可以推测出来:

    entryTypes里的值其实就是我们告诉PerformanceObserver,我们想要获取的某一方面的性能值。例如传入paint,就是说我们想要得到fcp和fp。

    所以我们看打印,它打印出来了fp和fcp

    PerformanceObserver如何自动获取首屏时间

    这里有必要解释一下什么是fp,fcp,fpm

    TTFB:Time To First Byte,首字节时间

    FP:First Paint,首次绘制,绘制Body

    FCP:First Contentful Paint,首次有内容的绘制,第一个dom元素绘制完成

    FMP:First Meaningful Paint,首次有意义的绘制

    TTI:Time To Interactive,可交互时间,整个内容渲染完成

    不懂?看图!

    PerformanceObserver如何自动获取首屏时间

    FP仅有一个div根节点

    FCP包含页面的基本框架,但没有数据内容

    FMP包含页面的所有元素及数据

    Wow!恍然大悟!

    实际使用

    好了,我们在实际项目中怎么取获取呢?可以看看我的实现参考一下下:

      // 使用 PerformanceObserver 监听 fcp  if (!!PerformanceObserver){    try {      const type = 'paint';      if ((PerformanceObserver.supportedEntryTypes || []).includes(type)) {        observer = new PerformanceObserver((entryList)=&gt;{          for(const entry of entryList.getEntriesByName('first-contentful-paint')){            const { startTime } = entry;            console.log('[assets-load-monitor] PerformanceObserver fcp:', startTime);            // 上报startTime操作          }        });        observer.observe({          entryTypes: [type],        });        return;      }    } catch (e) {      // ios 不支持这种entryTypes,会报错 https://caniuse.com/?search=PerformancePaintTiming      console.warn('[assets-load-monitor] PerformanceObserver error:', (e || {}).message ? e.message : e);    }  }

    这里用了判断是否可以使用PerformanceObserver,不能使用的话,我们是用其他方法的,例如MutationObserver,这个我们我们后面再讲。

    以上就是关于“PerformanceObserver如何自动获取首屏时间”这篇文章的内容,相信大家都有了一定的了解,希望小编分享的内容对大家有帮助,若想了解更多相关的知识内容,请关注编程网行业资讯频道。

    免责声明:

    ① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

    ② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

    PerformanceObserver如何自动获取首屏时间

    下载Word文档到电脑,方便收藏和打印~

    下载Word文档

    猜你喜欢

    PerformanceObserver如何自动获取首屏时间

    这篇“PerformanceObserver如何自动获取首屏时间”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“Perform
    2023-07-02

    win10自动锁屏时间如何设置

    要更改Windows 10的自动锁屏时间,可以按照以下步骤操作:1. 打开“设置”应用程序。可以通过点击“开始”菜单,然后点击设置图标来打开它。2. 在“设置”窗口中,点击“个性化”。3. 在左侧导航栏中,点击“锁屏”。4. 在“锁屏”页面
    2023-08-23

    win10如何设置自动锁屏时间

    这篇文章主要介绍“win10如何设置自动锁屏时间”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“win10如何设置自动锁屏时间”文章能帮助大家解决问题。win10设置自动锁屏时间的方法1、首先我们点击
    2023-07-01

    mysql怎么自动获取当前时间

    在MySQL中,可以使用NOW()函数来获取当前的日期和时间。该函数返回一个包含当前日期和时间的datetime值。例如,可以使用以下查询来获取当前时间:SELECT NOW();如果需要只获取当前日期,可以使用CURDATE()函数:
    mysql怎么自动获取当前时间
    2024-04-09

    oracle如何获取时间

    在 oracle 中获取时间有以下方法:current_timestamp:返回当前系统时间,精确到秒。systimestamp:比 current_timestamp 更准确,精确到纳秒。sysdate:返回当前系统日期,不含时间部分。t
    oracle如何获取时间
    2024-06-12

    javascript如何获取时间戳

    这篇文章主要讲解了“javascript如何获取时间戳”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“javascript如何获取时间戳”吧!js/javascript获取时间戳的5种方法1.
    2023-07-05

    nodejs如何获取时间戳与时间差

    Nodejs中获取时间戳的方法有很多种,例如:1.new Date().getTime() 2.Date.now() 3.process.uptime() 4.process.hrtime() 平时想获取一个时间戳的话,用这些方法都可以,那
    2022-06-04

    Linux系统如何获取启动时间和正常运行时间

    小编给大家分享一下Linux系统如何获取启动时间和正常运行时间,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!我们在Ubuntu 18.04 LTS系统上运行命令您
    2023-06-28

    php如何获取linux时间戳

    在 PHP 中可以使用 `time()` 函数来获取当前的时间戳。时间戳是从 1970 年 1 月 1 日 00:00:00 GMT 到现在的秒数。以下是一个获取当前时间戳的示例代码:```php$timestamp = time();ec
    2023-08-24

    oracle如何获取当前时间

    在Oracle数据库中,可以使用SYSDATE函数来获取当前的日期和时间。SYSDATE函数返回当前日期和时间,包含时分秒。示例如下:SELECT SYSDATE FROM dual;这将返回类似于以下格式的结果:SYSDATE---
    oracle如何获取当前时间
    2024-04-17

    mysql如何获取当前时间

    在MySQL中,可以使用以下函数来获取当前时间:1. NOW(): 返回当前日期和时间的值,以 YYYY-MM-DD HH:MM:SS 的格式表示。 示例:SELECT NOW();2. CURRENT_TIMESTAMP(): 返回当
    2023-08-16

    MySQL中如何获取时间戳

    这篇文章主要介绍了MySQL中如何获取时间戳,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。UNIX_TIMESTAMP(date):获取时间戳SELECT UNIX_TIME
    2023-06-16

    如何获取mysql的时间戳

    mysql 获取时间戳的方法有:1. now() 函数返回当前时间戳;2. current_timestamp 函数也返回当前时间戳;3. unix_timestamp() 函数转换为 unix 时间戳;4. from_unixtime()
    如何获取mysql的时间戳
    2024-06-15

    编程热搜

    • Python 学习之路 - Python
      一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
      Python 学习之路 - Python
    • chatgpt的中文全称是什么
      chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
      chatgpt的中文全称是什么
    • C/C++中extern函数使用详解
    • C/C++可变参数的使用
      可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
      C/C++可变参数的使用
    • css样式文件该放在哪里
    • php中数组下标必须是连续的吗
    • Python 3 教程
      Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
      Python 3 教程
    • Python pip包管理
      一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
      Python pip包管理
    • ubuntu如何重新编译内核
    • 改善Java代码之慎用java动态编译

    目录