裸奔的前端绿皮车-网站裸奔现状

简介: 裸奔的前端绿皮车-网站裸奔现状

image.jpeg这将是一篇比较通俗的文章,首先会讲讲构建产品体验的几个要素(纯属个人胡诌),中间穿插性能优化的例子,鉴于本人文笔羞涩,所以很多地方“文字不够,图片来凑”,敬请谅解。


欢迎查看我写的《前端性能优化小技巧》、《快速搭建全链路平台》《四个例子教你提高用户体验》《前端应用性能应该采集那些指标数据》《web应用性能简析》,《网站告警哪家强》、《报错/卡顿是制约产品体验的关键因素

正文 前端就是用户体验,是价值,是创造


从用户体验层面,量“前端体”裁“成本衣”

前端就是产品经理,产品体验前端义不容辞


前端本是产品的开发者,也是产品的体验者,产品性能体验义不容辞

卡顿依旧是衡量产品体验的核心要素


2022年第二季度马上结束了,各位前端大大是不是开始为下个季度的okr发愁啦,那你可算有福利啦,福利发放前先给大家讲个短故事

故事1    寻寻觅觅冷冷清清,乍暖还寒时,页面还在卡顿


用户:“日志查询很慢啊”
研发or产品:我这里不慢啊,网络的原因吧。
复制代码


这是用户经常反应的一个情况,就是页面卡。但是因为设备不同、浏览器兼容、网络快慢、产品设计等原因,开发或者研发很少能复现。


卡顿的元凶之一:长耗时任务


这里不禁要反复说到上一篇文章《对前端性能的小看法》中曾插播一条小知识,长耗时任务(long-task) long task顾名思义,是花费时间比较长的任务。long task直接影响产品体验。


聪明的公司和团队都会注意减少long task的数量,尤其注重在核心功能的long task的数量和耗时。 以某管理后台数据为例,将180天内的long task的数量按照时间排序

00086d27214f4facbb4a343d6f7fea2e~tplv-k3u1fbpfcp-zoom-in-crop-mark_4536_0_0_0.webp.jpg

基本能看出:

  1. 最长耗时任务250ms
  • 如果单一请求还涉及网络+后台+数据库,假设花费1s,那么用户至少花费1.25s
  • 页面粗略按照1000ms / 60 ≈16.666ms一帧当做用户能感受到的页面不卡顿来讲,页面卡了 250 / 16.66 = 15 帧(不考虑其他时间)
  1. 页面平均卡顿在150ms-200ms之间
  • 以50ms为基线,则页面能优化空间至少为150ms-50ms=100ms,200ms-50ms=150ms,也就是页面性能能提升的空间约为100ms-150ms。下图中红色虚线以上的面积便是性能优化的空间


6377561f9fb14a6fb94f9c940536bc4a~tplv-k3u1fbpfcp-zoom-in-crop-mark_4536_0_0_0.webp.jpg

一蹴而就的脑袋热拯救不了卡顿


性能优化这项任务是艰巨而且漫长的,为此也有很多的尝试和实践,然而流于形式或者没有计划的一蹴,热情消散或者团队更换后更容易无疾而终,不过目前整体来看最让人头疼的是


  • 对产品性能注重不到位子
  • 产品性能与团队绩效关联不紧密
  • 产品性能无处下手。

OKR福利一:以页面为维度设定基线、优化目标、拆分目标和计划

cdce8888a8144763b11ec31a4a306bda~tplv-k3u1fbpfcp-zoom-in-crop-mark_4536_0_0_0.webp.jpg

上图是针对某管理后台数据,以180天内的long task的数量进行排名,取top 10的页面,基本能看出:


  1. 前三个页面的长耗时总数量均超过20万次
  2. 垫底的页面的长耗时总数量也超过1万次 这样看或许不够直观,以百分比视图看可能更清晰能够看清

4d65c3942fcf4f01ab0e999368289364~tplv-k3u1fbpfcp-zoom-in-crop-mark_4536_0_0_0.webp.jpg

  1. 前三个页面的长耗时总数量总计占比超过60%
  2. 其余所有页面长耗时总数量分布比较均匀


季度OKR来了

聪明的团队的季度OKR:


  1. long task 页面总数量降低20%
  2. Top 10 卡顿页面中Top 1、2、3降低10%

前端性能指标那么多,为什么不是其他指标?

First Paint 首屏渲染不能作为产品体验的构建要素

  1. 对于非ssr页面来讲,页面的首屏渲染大概率是一个“

    ”代码片段渲染后空白(即便做了骨架屏也至多是灰色结构块),这和用户实际需要的画面可能大相径庭。
  2. 即便是ssr页面,首屏是所有页面中一个页面,不一定能代表产品体验。

后台性能指标不能作为产品体验的关键要素


页面展示的数据以及绝大多数业务逻辑来自于后台,但是


  1. 前端用户体验绝大多数数据来源于后端,但后端平均响应一般不会100ms开外
  2. 后台平均耗时等指标仅能反应后端接口响应的情况

网络不能作为产品体验的要素


虽然部分页面以离线包或者pwa的形式展示给用户,但前端整体还停留在对网络传输的依赖上。以某小程序在过去90的网络类型为例:b5f0ec7214bd4663b4169ff3c1a6be72~tplv-k3u1fbpfcp-zoom-in-crop-mark_4536_0_0_0.webp.jpg


从前端能拿到的网络连接类型基本有:


  • wifi
  • 4G
  • 3G
  • 2G
  • slow-2G 不同的网络类型源于不同的指标,也对应了不同的使用场景,引用最早对不同类型的定义和解释标准如下
ECT Minimum RTT (ms) Maximum downlink (Kbps) 解释
slow-2g 2000 50 文本信息
2g 1400 70 小图片
3g 270 700 部分高清图片/音频视频等大数据量
4g 0 高清音视频等超大数据量



对于3g类型能查看高清图片、音视频等场景只能呵呵了。3g场景下就是一线大厂也要一命呜呼。


前端绿皮火车


假设北京的我们要去保定出差(假设疫情允许)。正常情况下我们需要先做地铁到火车站,然后做火车站到保定。地铁的部分好比后台部分,火车部分是前端体验部分,你做的是绿皮火车票还是高铁火车票,这个差别能不大吗?你以为这个例子夸张,然而实际是这辆前端绿皮车,可能还是烧煤的,整体来看,目前前端数量少、投入偏低是制约产品体验的第一因素,在4G条件下,如果在保留各家网站缓存策略的条件下,以淘宝、京东、百度、汽车之家、懂车帝、贝壳、知乎、头条、小米商城为对象,如果把domContentLoaded为记录对象,统计时间来看,

753c6e8512c2423fb1933af1700061f6~tplv-k3u1fbpfcp-zoom-in-crop-mark_4536_0_0_0.webp.jpg

错误是保证用户体验的基本要素

用户:

从用户体验层面,一般前端错误可能来自:设备、网络、后端程序、数据错误

故事 2 错误的背后不只是是流失与不信任


大客户销售:“被客户diss了,一堆产品错误”
研发or产品:我没看到错误啊。


以某一次帮朋友查看前端系统报错为例,用户90内有三段明显的前端报错。以下是我的分析情况


6e7fc867ba9f427f84d8451ec4b813ae~tplv-k3u1fbpfcp-zoom-in-crop-mark_4536_0_0_0.webp.jpg


7a68ad053aad460daac92a0a34a5ba84~tplv-k3u1fbpfcp-zoom-in-crop-mark_4536_0_0_0.webp.jpg

经过上面的分析,基本能看出报错源于前端代码,所以下钻进行分析

020a8e249d334eb494fbd8486a8f5e38~tplv-k3u1fbpfcp-zoom-in-crop-mark_4536_0_0_0.webp.jpg

c29051f8c7e04b0cb6b4e746ef7df292~tplv-k3u1fbpfcp-zoom-in-crop-mark_4536_0_0_0.webp.jpg

ff95f5dae197482f8da8f8775ad4b8a5~tplv-k3u1fbpfcp-zoom-in-crop-mark_4536_0_0_0.webp.jpg

以上是简单写了一个总结建议,给到了朋友,也解决了前端的报错问题


裸奔的前端绿皮车


福利二 收集哪些指标


这个朋友是幸运的,因为系统收集了相关指标等信息,然而很多二三线前端产品目前还是裸奔状态。也许公司购买了业务相关的埋点服务,但是对性能和错误的投入整体近乎于零。举个简单例子,很多公司对以下这几个指标收集很少


  • JS错误数量
  • JS错误率
  • 资源错误数
  • 资源错误率
  • 首次渲染平均时间
  • 页面加载平均耗时
  • 页面慢加载次数
  • 资源加载平均耗时
  • LCP平均耗时(或P99/P90)
  • FCP平均耗时(或P99/P90)
  • CLS平均偏移(或P99/P90) 针对收集的指标书写一定的触发条件


59a283f754644c57b72bea6a826bb3ff~tplv-k3u1fbpfcp-zoom-in-crop-mark_4536_0_0_0.webp.jpg

写在最后


文章都是胡说,产品体验大多数还是要看页面是否卡顿、是否报错,所以提出卡顿是衡量产品体验的核心要素,报错是衡量产品体验的基本要素。



目录
相关文章
|
3月前
|
缓存 前端开发 JavaScript
前端性能优化:让你的网站更快、更流畅
前端性能优化:让你的网站更快、更流畅
42 0
|
3月前
|
前端开发 JavaScript UED
惊呆了!这些前端技巧竟然能让你的网站秒变高大上,赶快学起来!
前端技术是网页设计的核心,能够显著提升用户体验和网站竞争力。本文介绍了三种实用的前端技巧:动态背景效果、微交互设计和响应式设计。通过CSS动画和JavaScript,可以实现视觉吸引的动态背景;微交互设计如按钮点击效果能增强用户参与感;响应式设计则确保网站在不同设备上呈现良好效果。这些技巧简单易学,效果显著,值得尝试。
53 3
|
3月前
|
移动开发 前端开发 JavaScript
惊!这些前端技术竟然能让你的网站在移动端大放异彩!
随着互联网技术的发展,移动设备成为主要的上网工具。本文介绍了几种关键的前端技术,包括响应式设计、图片优化、字体选择、HTML5和CSS3的应用、性能优化及手势操作设计,帮助开发者提升网站在移动端的显示效果和用户体验。示例代码展示了如何实现简单的双向绑定功能。
62 3
|
3月前
|
编解码 前端开发 JavaScript
前端界的黑科技:掌握这些技术,让你的网站秒变未来感十足!
【10月更文挑战第31天】前端技术日新月异,黑科技层出不穷,让网页更加美观、交互更加丰富。本文通过响应式布局与媒体查询、前端框架与组件化开发等案例,展示这些技术如何让网站充满未来感。响应式布局使网站适应不同设备,前端框架如React、Vue则提高开发效率和代码质量。
75 3
|
3月前
|
前端开发 JavaScript API
惊呆了!这些前端技巧竟然能让你的网站支持AR/VR体验!
【10月更文挑战第31天】在数字化时代,用户对网页交互体验的要求日益提高,传统二维网页已难以满足需求。本文介绍如何利用前端技术,特别是Three.js,实现AR/VR体验,提升用户满意度和网站价值。通过示例代码,展示如何创建简单的3D场景,并探讨AR/VR技术的基本原理和常用工具,帮助开发者打造沉浸式体验。
181 6
|
3月前
|
前端开发 JavaScript 开发者
惊!这些前端技术竟然能让你的网站在社交媒体上疯传!
【10月更文挑战第30天】在这个信息爆炸的时代,社交媒体成为内容传播的重要渠道。本文介绍了前端开发者如何利用技术让网站内容在社交媒体上疯传,包括优化分享链接、创建引人注目的标题和描述、利用Open Graph和Twitter Cards、实现一键分享功能以及创造交互式内容。通过这些方法,提升用户分享意愿,使网站成为社交媒体上的热门话题。
65 2
|
3月前
|
前端开发 JavaScript API
惊呆了!这些前端技术竟然能让你的网站实现无缝滚动效果!
【10月更文挑战第30天】本文介绍了几种实现网页无缝滚动的技术,包括CSS3的`scroll-snap`属性、JavaScript的Intersection Observer API以及现代前端框架如React和Vue的动画库。通过示例代码展示了如何使用这些技术,帮助开发者轻松实现流畅的滚动效果,提升用户体验。
295 29
|
3月前
|
JSON 前端开发 搜索推荐
惊!这些前端技术竟然能让你的网站实现个性化推荐功能!
【10月更文挑战第30天】随着互联网技术的发展,个性化推荐已成为提升用户体验的重要手段。前端技术如JavaScript通过捕获用户行为数据、实时更新推荐结果等方式,在实现个性化推荐中扮演关键角色。本文将深入解析这些技术,并通过示例代码展示其实际应用。
134 4
|
3月前
|
自然语言处理 前端开发 搜索推荐
前端界的黑科技:掌握这些技术,让你的网站秒变智能助手!
【10月更文挑战第30天】随着前端技术的发展,网站正逐渐变成智能助手。本文探讨了四大关键技术:自然语言处理(NLP)使网站理解用户输入;机器学习实现个性化推荐;Web Notifications API发送重要提醒;Web Speech API实现语音交互。通过这些技术,网站不仅能更好地理解用户,还能提供更智能、个性化的服务,提升用户体验。
75 3
|
3月前
|
搜索推荐 前端开发 UED
惊!这些前端技巧竟然能让你的网站在搜索引擎中获得更高排名!
【10月更文挑战第30天】在数字化时代,网站的搜索引擎排名直接影响流量和品牌知名度。本文通过四个真实案例,揭秘前端技巧如何提升搜索引擎排名:1. 关键词优化与布局;2. 高质量内容与多媒体优化;3. 网站结构优化与URL优化;4. 提升页面加载速度。这些技巧不仅提高排名,还能增强用户体验,助力业务发展。
75 3

热门文章

最新文章

  • 1
    【Java若依框架】RuoYi-Vue的前端和后端配置步骤和启动步骤
  • 2
    【11】flutter进行了聊天页面的开发-增加了即时通讯聊天的整体页面和组件-切换-朋友-陌生人-vip开通详细页面-即时通讯sdk准备-直播sdk准备-即时通讯有无UI集成的区别介绍-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草Alex
  • 3
    【05】flutter完成注册页面完善样式bug-增加自定义可复用组件widgets-严格规划文件和目录结构-规范入口文件-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草央千澈
  • 4
    【08】flutter完成屏幕适配-重建Android,增加GetX路由,屏幕适配,基础导航栏-多版本SDK以及gradle造成的关于fvm的使用(flutter version manage)-卓伊凡换人优雅草Alex-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草Alex
  • 5
    详解智能编码在前端研发的创新应用
  • 6
    巧用通义灵码,提升前端研发效率
  • 7
    智能编码在前端研发的创新应用
  • 8
    【04】flutter补打包流程的签名过程-APP安卓调试配置-结构化项目目录-完善注册相关页面-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程
  • 9
    【07】flutter完成主页-完成底部菜单栏并且做自定义组件-完整短视频仿抖音上下滑动页面-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草央千澈
  • 10
    抛弃node和vscode,如何用记事本开发出一个完整的vue前端项目
  • 1
    以项目登录接口为例-大前端之开发postman请求接口带token的请求测试-前端开发必学之一-如果要学会联调接口而不是纯写静态前端页面-这个是必学-本文以优雅草蜻蜓Q系统API为实践来演示我们如何带token请求接口-优雅草卓伊凡
    29
  • 2
    大前端之前端开发接口测试工具postman的使用方法-简单get接口请求测试的使用方法-简单教学一看就会-以实际例子来说明-优雅草卓伊凡
    50
  • 3
    【2025优雅草开源计划进行中01】-针对web前端开发初学者使用-优雅草科技官网-纯静态页面html+css+JavaScript可直接下载使用-开源-首页为优雅草吴银满工程师原创-优雅草卓伊凡发布
    26
  • 4
    巧用通义灵码,提升前端研发效率
    93
  • 5
    【11】flutter进行了聊天页面的开发-增加了即时通讯聊天的整体页面和组件-切换-朋友-陌生人-vip开通详细页面-即时通讯sdk准备-直播sdk准备-即时通讯有无UI集成的区别介绍-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草Alex
    139
  • 6
    详解智能编码在前端研发的创新应用
    96
  • 7
    智能编码在前端研发的创新应用
    83
  • 8
    【09】flutter首页进行了完善-采用android studio 进行真机调试开发-增加了直播间列表和短视频人物列表-增加了用户中心-卓伊凡换人优雅草Alex-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草Alex
    37
  • 9
    【08】flutter完成屏幕适配-重建Android,增加GetX路由,屏幕适配,基础导航栏-多版本SDK以及gradle造成的关于fvm的使用(flutter version manage)-卓伊凡换人优雅草Alex-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草Alex
    119
  • 10
    【07】flutter完成主页-完成底部菜单栏并且做自定义组件-完整短视频仿抖音上下滑动页面-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草央千澈
    75