如何实现 H5 秒开?

这篇具有很好参考价值的文章主要介绍了如何实现 H5 秒开?。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

在简历上写了精通 H5,结果面试官上来就问:

同学,你说你精通 H5 ,那你能不能说一下怎么实现 H5 秒开?

如何实现 H5 秒开?

由于没怎么做过性能优化,我只能凭着印象,断断续续地罗列了几点:

  • 网络优化:http2、dns 预解析、使用 CDN
  • 图片优化:压缩、懒加载、雪碧图
  • 体积优化:分包、tree shaking、压缩、模块外置
  • 加载优化:延迟加载、骨架屏
  • ...

看得出来面试官不太满意,最后面试也挂了。于是我请教了我的好友 Gahing ,问问他的观点。

Gahing:

你列的这些优化手段本身没啥问题,如果是一个工作一两年的我会觉得还可以。但你已经五年以上工作经验了,需要有一些系统性思考了。

好像有点 PUA 的味道,于是我追问道:什么是系统性的思考?

Gahing:

我们先说回答方式,你有没有发现,你回答时容易遗漏和重复。

比如说「图片懒加载」,你归到了「图片优化」,但其实也可以归到「加载优化」。同时你还漏了很多重要的优化手段,比如资源缓存、服务端渲染等等。

究其原因应该是缺少抽象分类方法。

那针对这个问题,应该如何分类回答?

Gahing:

分类并非唯一,可以有不同角度,但都需遵从 MECE 原则(相互独立、完全穷尽) ,即做到不重不漏

  • 按页面加载链路分类:容器启动、资源加载、代码执行、数据获取、绘制渲染。

  • 按资源性能分类:CPU、内存、本地 I/O、网络。该分类方法又被叫做 USE 方法(Utilization Saturation and Errors Method)。

  • 按协作方分类:前端、客户端、数据后台、图片服务、浏览器引擎等。

  • 按流程优化分类前置、简化、拆分

    • 前置即调整流程,效果上可能是高优模块前置或并行,低优模块后置;
    • 简化即缩减或取消流程,体积优化是简化,执行加速也是简化;
    • 拆分即细粒度拆解流程,本身没有优化效果,是为了更好的进行前置和简化。
    • 这个角度抽象层次较高,通常能回答出来的都是高手。
  • 多级分类:使用多个层级的分类方法。比如先按页面加载链路分类,再将链路中的每一项用协作方或者流程优化等角度再次分类。突出的是一个系统性思维。

选择好分类角度,也便于梳理优化方案的目标。

现在,尝试使用「页面加载链路+流程优化+协作方」的多级分类思维,对常见的首屏性能优化手段进行分类。

如何实现 H5 秒开?

PS: 可以打开飞书文档原文查看思维导图

好像有点东西,但是我并没有做过性能优化,面试官会觉得我在背八股么?

Gahing:

可以没有实操经验,但是得深入理解。随便追问一下,比如「页面预渲染效果如何?有什么弊端?什么情况下适用?」,如果纯背不加理解的话很容易露馅。

另外,就我个人认为,候选人拥有抽象思维比实操经验更重要,更何况有些人的实操仅仅是知道怎么做,而不知道为什么做。

那我按上面的方式回答了,能顺利通过面试么 🌝 ?

Gahing:

如果能按上面的抽象思维回答,并顶住追问,在以前应该是能顺利通过面试的(就这个问题)。

但如今行业寒冬,大厂降本增效,对候选人提出了更高的要求,即系统性思考业务理解能力

从这个问题出发,如果想高分通过,不仅需要了解优化方案,还要关注研发流程、数据指标、项目协作等等,有沉淀自己的方法论和指导性原则,能实施可执行的 SOP。。

如何实现 H5 秒开?

最后,我还是忍不住问了 Gahing :如果是你来回答这个问题,你会怎么回答?

Gahing:

H5 秒开是一个系统性问题,可以从深度和广度两个方向来回答。

深度关注的是技术解决方案,可以从页面加载链路进行方案拆解,得到容器启动、资源加载、代码执行、数据获取、绘制渲染各个环节。其中每个环节还可以从协作方和流程优化的角度进一步拆解。

广度关注的是整个需求流程,可以用 5W2H 进行拆解,包括:

  • 优化目标(What):了解优化目标,即前端首屏加载速度
  • 需求价值(Why):关注需求收益,从技术指标(FMP、TTI)和业务指标(跳失率、DAU、LT)进行分析
  • 研发周期(When):从开发前到上线后,各个环节都需要介入
  • 项目协作(Who):确定优化专项的主导方和协作方
  • 优化范围(Where):关注核心业务链路,确定性能卡点
  • 技术方案(How):制定具体的优化策略和行动计划
  • 成本评估(How much):评估优化方案的成本和效益。考虑时间、资源和预期收益,确保优化方案的可行性和可持续性。

通过 5W2H 分析法,可以建立系统性思维,全面了解如何实现 H5 秒开,并制定相应的行动计划来改进用户体验和页面性能。文章来源地址https://www.toymoban.com/news/detail-510484.html


到了这里,关于如何实现 H5 秒开?的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 如何使用h5-scan-qrcode插件实现一个h5页面扫码识别二维码功能

    为了适应公司代码全程使用jquery构造 如需其他js或者vue 可根据此代码去改(因为好多地方会用到这个东西所以我封装成了一个js文件) https://dragonir.github.io/h5-scan-qrcode/#/ 这个是效果 可以提前看一下~ 我做的比这个效果多一个拿取本地图库的二维码扫码 scancode ---- html文件 如何

    2024年02月06日
    浏览(47)
  • 一招永久解决github上不去问题,秒开

    进入如下路径,把hosts复制到桌面 在桌面将hosts以记事本方式打开,复制下面内容,退出保存 3. 将修改好的hosts,替换掉原系统中的hosts 打开cmd,输入下面的代码即可刷新DSN 秒开。。。

    2024年02月11日
    浏览(30)
  • 性能优化2.0,新增缓存后,程序的秒开率不升反降

    大家好,我是哪吒。 在上一篇文章中提到,有一个页面加载速度很慢,是通过缓冲流优化的。 查询的时候,会访问后台数据库,查询前20条数据,按道理来说,这应该很快才对。 追踪代码,看看啥问题,最后发现问题有三: 表中有一个BLOB大字段,存储着一个PDF模板,也就是

    2024年01月16日
    浏览(30)
  • 如何做H5性能测试?

    提起H5性能测试,可能许多同学有所耳闻,但是不知道该如何对H5做性能测试,或者不知道H5应该关注哪些性能指标。今天我们就来看下,希望阅读本文后,能够有所了解。 常用指标 1、H5性能相关参数介绍 白屏时间 :用户首次看到网页又内容的时间,即第一次渲染流程完成时

    2024年02月12日
    浏览(29)
  • h5页面如何与原生交互

    本文讲述h5页面跟原生通信,比如在app内,调用相机,获取相册内的图片,在app内拉起微信小程序等等,h5页面没有这么多权限能够直接调用移动端的原生能力,这个时候就需要与原生进行通讯,传递一个信号给原生这边,然后原生直接调用手机端的能力。 下面分别讲解h5与

    2024年02月16日
    浏览(30)
  • H5如何安全的获取秘钥

    最近开始做移动项目,基本共识是H5页面代码是不能写死秘钥或私钥的,给大家贡献一个方案: 1、前端存SM2公钥,后端存私钥 2、前端随机生成SM4秘钥K4,使用SM2公钥加密这个秘钥,得到SM2加密的K4密文 3、使用K4秘钥加密登录报文,得到SM4加密的登录密文 4、将K4密文+登录密文

    2024年02月15日
    浏览(26)
  • 如何Uniapp中嵌入H5,并且在H5中跳转到APP的指定页面

    有一个需求是,在app中嵌入一个H5页面,H5是一个网络页面,不在app项目里,APP可以打开H5页面,实现单点登录,并且在H5 页面中打开APP指定的页面 在uniapp中,有一个web-view组件,这就相当于一个浏览器组件,可以用来承载网页的容器,会自动铺满整个页面 web-view的详细文档参

    2024年02月04日
    浏览(35)
  • window如何打开 .h5 格式的文件?

    在pycharm里面可以看到.h5文件 但是无法打开。 所以我们可以用以下的方法来解决: 百度网盘打开 链接:https://pan.baidu.com/s/1PbLhK8LfeTSeuFGCYcJeDg  提取码:s1lz 两个都下载。  压缩包解压之后,会出现以下文件,单击.exe 进行安装  然后把下载的 hdfview.bat文件 剪切到安装目录下:

    2024年02月11日
    浏览(29)
  • H5--公众号页面如何唤起小程序

    一、整体流程 认证服务号 绑定 JS接口安全域名 配置IP白名单 将H5和小程序进行关联 引入 微信sdk jweixin-1.6.0.js 需要跳转的小程序页面path和原始ID(gh_xxx) 二、检查流程配置是否正确 先查看官方的文档需求: 一步到位「开发前必读文档」 一步到位「微信 SDK说明文档」 三、配置

    2024年02月06日
    浏览(31)
  • 如何快速生成一个H5滑动的卡片

    当要对滚动做一些处理的时候可以参考下面的代码  这里以vant的轮播图组件  结构  样式  方法函数 计算属性用于将原始的 comboArr 数组切分成多个子数组,每个子数组包含 itemsPerSwipe 个元素。这样可以确保每个轮播项内都有相同数量的组合套餐信息。这个方法返回一个包含

    2024年02月10日
    浏览(32)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包