We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
在前端开发里,常常需要对某个页面进行相应的性能监控,接着拿着数据来跟运维部门进行协调分析,看看到底是哪部分导致了整个页面的速度。
那么监控需要用的就是今天的主角,Performance API,一个专门为了性能而诞生的 API,兼容性必须得 IE9+(其实兼容性已经足够好了...)。
接下来我们就来深入理解 Performance。
只需要在项目的入口文件中使用以下代码即可。
var performance = window.performance || window.msPerformance || window.webkitPerformance if(performance) { // 访问performance }
那么到底 Performance API 中带地都有哪些东西?在这里我就直接列出来。
需要注意的是,在某些情况下,例如页面还没初始化完成时,这时候直接访问performance.timing是为 null 的。为了处理这种情况,我们可以使用一个定时器来解决。
performance.timing
var performance = window.performance || window.msPerformance || window.webkitPerformance if(performance) { let performanceTiming = performance.timing let performanceInterval = setInterval(() => { if(performanceTiming) { clearInterval(performanceInterval) // ... } }, 100) }
接下来我们就拿 memory、navigation 和 timing 来分析一下。
在 performance.memory 中主要包含有三个值,分别是。
usedJSHeapSize 主要用于表示 Javascript 对象(包括V8引擎内部对象)所占用的内存数。
totalJSHeapSize 主要用于表示整个项目中可使用的内存数。
jsHeapSizeLimit 主要用于表示内存大小的限制。
需要注意的是,当 usedJSHeapSize > totalJSHeapSize 时,会导致内存泄漏。
在 performance.navigation 中只有两个值,分别是:
redirectCount 用于表示在同源页面情况下,若有重定向的话,页面经历多少次重定向到达当前页面,默认为 0。
type 表示到达当前页面的方式,其中:
需要注意的是,redirectCount 的值必须是在同源页面情况下的重定向到达当前页面才会有值。
要说 performance 中最主要的 API 莫过于 timing 了,主要的功能就是记录页面运行的每一步时间,可用于统计以及和运维部门之间协调的主要工具。
那么 performance.timing 长什么样呢?先看看下面这张图。
相信很多童鞋都会看过这个图,那么图上的每一个时间节点都是表示什么?别急,接下来我们就来一一解答。
那么接下来就看看如何计算一些常见的性能监测点。
需要注意的是,当到达 domInteractive 时间点时,用户是可以与网站进行交互的!
最后的最后,可参考一下别人写的好文章。
深入理解前端性能监控
The text was updated successfully, but these errors were encountered:
No branches or pull requests
在前端开发里,常常需要对某个页面进行相应的性能监控,接着拿着数据来跟运维部门进行协调分析,看看到底是哪部分导致了整个页面的速度。
那么监控需要用的就是今天的主角,Performance API,一个专门为了性能而诞生的 API,兼容性必须得 IE9+(其实兼容性已经足够好了...)。
接下来我们就来深入理解 Performance。
如何使用 Performance API
只需要在项目的入口文件中使用以下代码即可。
那么到底 Performance API 中带地都有哪些东西?在这里我就直接列出来。
需要注意的是,在某些情况下,例如页面还没初始化完成时,这时候直接访问
performance.timing
是为 null 的。为了处理这种情况,我们可以使用一个定时器来解决。接下来我们就拿 memory、navigation 和 timing 来分析一下。
performance.memory 处理内存
在 performance.memory 中主要包含有三个值,分别是。
usedJSHeapSize 主要用于表示 Javascript 对象(包括V8引擎内部对象)所占用的内存数。
totalJSHeapSize 主要用于表示整个项目中可使用的内存数。
jsHeapSizeLimit 主要用于表示内存大小的限制。
需要注意的是,当 usedJSHeapSize > totalJSHeapSize 时,会导致内存泄漏。
performance.navigation 处理页面来源
在 performance.navigation 中只有两个值,分别是:
redirectCount 用于表示在同源页面情况下,若有重定向的话,页面经历多少次重定向到达当前页面,默认为 0。
type 表示到达当前页面的方式,其中:
需要注意的是,redirectCount 的值必须是在同源页面情况下的重定向到达当前页面才会有值。
performance.timing 处理页面性能时间
要说 performance 中最主要的 API 莫过于 timing 了,主要的功能就是记录页面运行的每一步时间,可用于统计以及和运维部门之间协调的主要工具。
那么 performance.timing 长什么样呢?先看看下面这张图。
相信很多童鞋都会看过这个图,那么图上的每一个时间节点都是表示什么?别急,接下来我们就来一一解答。
那么接下来就看看如何计算一些常见的性能监测点。
需要注意的是,当到达 domInteractive 时间点时,用户是可以与网站进行交互的!
最后的最后,可参考一下别人写的好文章。
深入理解前端性能监控
The text was updated successfully, but these errors were encountered: