【资料图】
导读|H5开屏龟速常是令开发者头疼的问题。腾讯企业微信团队对该现象进行分析优化,最终H5开屏耗时130ms,达到秒开效果!企微前端开发工程师陈智仁将分享可用可扩展的Hybird H5秒开方案。该团队使用离线包解决了资源请求耗时的问题,在这个基础上通过耗时分析找到瓶颈环节,进一步采用“预热”进行优化提速以解决了WebView初始化、数据预拉取、js执行(app初始化)耗时的问题。希望这些通用方法对你有帮助。
背景
服务端渲染(SSR)是Web主流的性能优化手段。SSR直出相比传统的SPA应用加载渲染规避了首屏拉取数据和资源请求的网络往返耗时。团队针对Web开发也已经支持了SSR能力。近期出于动态化运营的考虑,我们选择了Web开发,同时我们也接到了提升体验的诉求。以企业微信要开发的页面为例:采用SSR方案,从用户点击到首屏渲染的耗时均值约600ms,白屏时间的存在是可以感知到的。为了尽可能消除白屏达到秒开效果,我们尝试做更多探索。方案思路1) 方案选型如何实现页面秒开呢?从最直观的渲染链路来入手分析。下图列出了从用户点击到看到首屏渲染可交互,一个SPA应用主要环节的加载流程。我们调研了业内相关方案,从渲染链路的视角来看下常见方案的优化思路。传统离线包在加载渲染过程中,网络IO是很明显的一个耗时瓶颈。传统的离线包方案思路很直接,如果网络耗时那就将资源离线,很好地解决了资源请求的耗时。用Service Worker也能达到离线包的效果,同时也是Web标准。首次渲染优化一般需要结合客户端配置预启动脚本来达到缓存资源的效果。SSRSSR则从另外的角度出发,在请求页面的时候就进行服务端数据拉取和页面直出,首屏得以在一个网络往返就可以展示,有效地规避了后续需要等待css/js资源加载、数据拉取的时间。性能体验有比较大的提升,在BFF普及的情况下开发模式简单,很受欢迎。公司内相关工作考虑到WebView的初始化(冷启动/ 二次启动)、页面网络请求、首屏数据接口的耗时,白屏时间还是可感知地存在的。以我们要开发的页面为例采用SSR首屏耗时均值~600ms,可交互时间均值~1100ms。如何进一步消除白屏?这里为各位介绍公司内外针对h5首屏性能优化的优秀方案。手Q团队的VasSonic是集大成者,主要思路是采用WebView和数据预拉取并行的方式。这套方案需要客户端和服务端采用指定协议改造接入,开发时也有一定的改造工作。微信游戏团队主要思路是利用jsCore做客户端预渲染,用户点击后直接上屏。这个方法也达到了很好的效果,首屏FCP时间从1664ms降低到了411ms。我们做了一个简要的方案对比,可以看到每个方案都针对渲染链路的某个或多个环节做了优化,其中VasSonic的效果比较显著。不过结合企业微信业务实际情况,我们列出了如下几点考虑:首先,接入对客户端和服务端有一定的改造成本,业务开发也有一定的改造工作。其次,我们已经有一套的统一发布平台,希望能复用这套发布能力。最后,性能上有没有进一步优化的空间呢?业务需求对体验上的要求是希望达到更好的性能效果或者说尽可能完全地消除白屏。基于以上考虑,我们在上述方案的基础上做了进一步的实践探索,以期望达到更好的性能效果。| 离线包 | SSR | VasSonic | CSR | 
| 资源加载 | |||
| 数据拉取 | |||
| JS执行 | |||
| WebView启动优化 | |||
| 首屏FCP | |||
| 可交互(取决于JS执行) | 
| 首次冷启动/ms | 二次打开/ms | |
| iOS(WKWebView) | 480ms | 90ms | 
腾讯工程师技术干货直达:
1、算法工程师深度解构ChatGPT技术
2、10分钟!从架构视角读懂K8s
3、探秘微信业务优化:DDD从入门到实践
4、耗时减半?腾讯云OCR只做了3件事
                导读|H5开屏龟速常是令开发者头疼的问题。腾讯企业微信团队对该现...
                ”张文宏说,这几年我们的新冠治疗都是在定点医院开展的,社区医生...
                光明网讯(记者张诗奇)中央经济工作会议于12月15日至16日在北京举...
                诉讼请求和所依据的事实理由。事实和理由部分将诉求中的基本事实陈...
                链上和衍生品数据显示,比特币出现“圣诞老人反弹”的可能性不大
                中国电影(600977)12月16日在投资者关系平台上答复了投资者关心的问题。
                12月15日,东方红睿阳三年混合最新单位净值为1 6073元,累计净值为...
                12月15日金石亚药发生大宗交易,交易数据如下。大宗交易成交价格20...
                我们挑选了几款搭载拥有出众功耗表现的AMD锐龙核心轻薄本,都拥有着...
                银座集团股份有限公司专项募集资金存储、使用、管理内部控制制度 ...
                联交所最新资料显示,12月7日,摩根大通减持北京首都机场(00694 HK...
                *ST尤夫(002427)08月19日在投资者关系平台上答复了投资者关心的问题...
                由其担任投资顾问的信托计划,本周在大型商业银行渠道发售,200万元...
                高盛发布研究报告称,将中煤能源(01898 HK)评级由“中性”上调至“...
                作为一个世界冠军,郭晶晶一直有着很高的热度,虽不在演艺圈,身上...
                北巴传媒公告,拟与京能租赁共同出资成立合资公司。合资公司注册资...
                12月12日盘中消息,9点44分明德生物(002932)触及涨停板。目前价格...
                12月9日,香港地政总署宣布,收回位于旺角山东街 地士道街的土地,...
                据湖北省发改委7日消息,《武汉都市圈发展规划》(以下简称《规划》)...
                初灵信息(300250)12月07日在投资者关系平台上答复了投资者关心的问...
                随着Z世代用户成为汽车市场的主流,他们对于时尚、潮流的态度也开始...
                上周五,5年期以上LPR(贷款市场报价利率)报价超预期下调,对市场影...
                外资向来看好中国新能源,但该板块一度因疫情而受重挫。汽车产业链...
                时隔26个月,标普500指数上周五再次触及熊市门槛。沃尔玛、塔吉特业...
                欧洲构建本土电池产业链曙光初现。近日,瑞典电池制造商Northvolt开...
                5月20日,中国人民银行授权全国银行间同业拆借中心公布贷款市场报价...
                夏天快到了,手机厂商却集体进入寒冬。没钱,没坏,还能用。看上去...
                中新网双鸭山4月1日电(马淑芬 梁峰洵 记者姜辉)随着天气转暖...
4月1日下午,吉林市召开疫情防控工作第22场新闻发布会,通报疫...
4月1日下午,吉林市召开疫情防控工作第22场新闻发布会,通报疫...