您的位置:首页 > 财经 > 产业 > 78建筑网挂靠官网_成都网站平面设计_推广咨询服务公司_宁波网站优化公司哪家好

78建筑网挂靠官网_成都网站平面设计_推广咨询服务公司_宁波网站优化公司哪家好

2024/12/23 2:17:42 来源:https://blog.csdn.net/liangshanbo1215/article/details/143027868  浏览:    关键词:78建筑网挂靠官网_成都网站平面设计_推广咨询服务公司_宁波网站优化公司哪家好
78建筑网挂靠官网_成都网站平面设计_推广咨询服务公司_宁波网站优化公司哪家好

performance.timing 是 Web 性能 API 的一部分,用于获取页面加载过程中的各个时间戳。这些时间戳可以帮助开发者分析页面加载性能,找出潜在的瓶颈。performance.timing 返回一个 PerformanceTiming 对象,该对象包含了多个属性,每个属性代表页面加载过程中的某个特定事件的时间戳。

以下是一些常用的 performance.timing 属性及其含义:

  • navigationStart: 页面导航开始的时间戳。
  • unloadEventStart: 卸载前一个页面的事件开始时间。
  • unloadEventEnd: 卸载前一个页面的事件结束时间。
  • redirectStart: 第一个重定向开始的时间。
  • redirectEnd: 最后一个重定向结束的时间。
  • fetchStart: 浏览器开始获取文档的时间。
  • domainLookupStart: DNS 查询开始的时间。
  • domainLookupEnd: DNS 查询结束的时间。
  • connectStart: TCP 连接开始的时间。
  • connectEnd: TCP 连接结束的时间。
  • secureConnectionStart: 安全连接开始的时间(仅 HTTPS)。
  • requestStart: 浏览器向服务器发送请求的时间。
  • responseStart: 浏览器从服务器接收第一个字节的时间。
  • responseEnd: 浏览器从服务器接收最后一个字节的时间。
  • domLoading: 解析器开始解析 DOM 的时间。
  • domInteractive: DOM 解析完成,但资源(如图片、样式表)可能仍在加载的时间。
  • domContentLoadedEventStartDOMContentLoaded 事件开始的时间。
  • domContentLoadedEventEndDOMContentLoaded 事件结束的时间。
  • domComplete: DOM 和所有子资源都已完全加载的时间。
  • loadEventStartload 事件开始的时间。
  • loadEventEndload 事件结束的时间。

示例代码

以下是一个简单的示例,展示如何使用 performance.timing 获取页面加载时间:

// 获取 PerformanceTiming 对象
const timing = performance.timing;// 计算页面加载时间
const loadTime = timing.loadEventEnd - timing.navigationStart;console.log(`Page load time: ${loadTime} ms`);// 计算 DNS 查找时间
const dnsLookupTime = timing.domainLookupEnd - timing.domainLookupStart;console.log(`DNS lookup time: ${dnsLookupTime} ms`);// 计算 TCP 连接时间
const tcpConnectTime = timing.connectEnd - timing.connectStart;console.log(`TCP connect time: ${tcpConnectTime} ms`);// 计算请求响应时间
const responseTime = timing.responseEnd - timing.requestStart;console.log(`Response time: ${responseTime} ms`);// 计算 DOMContentLoaded 事件时间
const domContentLoadedTime = timing.domContentLoadedEventEnd - timing.domContentLoadedEventStart;console.log(`DOMContentLoaded event time: ${domContentLoadedTime} ms`);

注意事项

  1. 兼容性performance.timing 在大多数现代浏览器中都是支持的,但在一些较旧的浏览器中可能不可用。
  2. 隐私: 由于 performance.timing 可以用于精确测量网络请求的时间,可能会引发隐私问题。因此,某些浏览器可能会限制或修改这些时间戳,以防止指纹识别攻击。
  3. 废弃警告performance.timing 的某些属性在未来的浏览器版本中可能会被废弃,建议使用 PerformanceNavigationTiming 接口来获取更详细的性能数据。

替代方案

如果你需要更详细和准确的性能数据,可以考虑使用 PerformanceObserverPerformanceNavigationTiming 接口:

new PerformanceObserver((list) => {list.getEntries().forEach((entry) => {console.log(entry.name, entry.startTime, entry.duration);});
}).observe({ entryTypes: ['navigation'] });

这将提供更丰富的性能数据,并且更加符合现代 Web 性能测量的最佳实践。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com