玩命加载中 . . .

备战前端实习面试之项目篇


前端面试题系列文章:

项目

前端监控系统

说说对前端监控的理解

前端监控是指在前端应用程序中收集、监视和分析各种关键指标和数据,以了解应用程序的性能、稳定性和用户体验情况。通过前端监控,开发团队可以及时发现和解决问题,提高应用程序的质量,追求更好的性能和用户体验。

前端监控一般需要监控各种指标,包括页面加载时间、资源加载时间、错误信息、用户交互行为、页面性能指标(如FPS、CPU占用等)以及用户行为分析等。

  1. 错误监控:通过监控前端应用程序中的错误信息,可以快速发现并定位代码中的错误和异常。错误信息包括JavaScript运行时错误、网络请求错误、资源加载错误等。
  2. 性能监控:需要追踪页面加载时间、资源加载时间、渲染性能等关键性能指标。
  3. 用户体验监控:需要记录用户的交互行为、浏览行为和页面转化情况等。
  4. 监控工具和技术:前端监控可以使用各种监控工具和技术实现,例如使用JavaScript错误监控库(如Sentry、Bugsnag等)捕获JavaScript错误,使用性能监控工具(如Web Vitals、Lighthouse等)评估页面性能,使用用户行为分析工具(如Google Analytics、Hotjar等)了解用户行为等。
  5. 数据分析和报告:对收集的数据进行分析和报告,通过统计和可视化的方式呈现。

如何设计埋点 SDK

前端核心性能指标

  1. 页面加载时间(Page Load Time):
  • 概念:指从用户请求页面开始到页面完全加载完成所需的时间。
// 计算页面加载时间
const startTime = performance.timing.navigationStart; // 页面导航开始时间
const endTime = performance.timing.loadEventEnd; // 页面加载完成时间
const pageLoadTime = endTime - startTime;
console.log('Page Load Time:', pageLoadTime);
  1. 首次内容渲染时间(First Contentful Paint,FCP):
  • 概念:指页面上第一次渲染任何文本、图像、非空白的canvas或SVG的时间点。
// 计算首次内容渲染时间

// 方法一:
const fcpEntry = performance.getEntriesByName('first-contentful-paint')[0];
const fcpTime = fcpEntry.startTime;
console.log('First Contentful Paint:', fcpTime);

// 方法二:
const observer = new PerformanceObserver((list) => {
    const entries = list.getEntries();
    const fcpEntry = entries.find((entry) => entry.name === 'first-contentful-paint');
    if (fcpEntry) {
        console.log('首次内容渲染时间:', fcpEntry.startTime);
    }
});
observer.observe({ entryTypes: ['paint'] });
  1. 首次有效渲染时间(First Meaningful Paint,FMP):
  • 概念:指页面上有意义的内容首次出现并可视的时间点。
  • 计算实现:需要根据具体的业务场景来定义什么是有意义的内容,并监测关键元素的渲染时间。
// 监测关键元素的渲染时间

// 方法一:
const keyElement = document.getElementById('content'); // 假设content为关键元素
const fmpTime = keyElement ? keyElement.renderTime : 0;
console.log('First Meaningful Paint:', fmpTime);

// 方法二:
const observer = new PerformanceObserver((list) => {
    const entries = list.getEntries();
    const fmpEntry = entries.find((entry) => entry.name === 'first-meaningful-paint');
    if (fmpEntry) {
        console.log('首次有效渲染时间:', fmpEntry.startTime);
    }
});
observer.observe({ entryTypes: ['paint'] });
  1. 用户交互响应时间(Time to Interactive,TTI):
  • 详解:TTI是指页面加载完成后,用户可以与页面进行交互的时间点。
  • 计算实现:可以通过监测用户交互事件的响应时间来确定 TTI
// 监测用户交互事件的响应时间
const button = document.getElementById('button'); // 假设button为用户交互元素
let ttiTime = 0;
button.addEventListener('click', () => {
ttiTime = performance.now(); // 用户点击按钮时的时间
console.log('Time to Interactive:', ttiTime);
});

在线编程笔试平台

简历中的其他部分

脚手架怎么制作

这个项目有什么亮点

做完有什么收获

有遇到什么难题吗,怎么解决的

有针对项目做过什么优化吗,有什么性能优化的措施

项目中为什么使用 TS 而不是 JS

国际化要怎么做

对工程化的理解

微前端


文章作者: hcyety
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 hcyety !
评论
  目录