记一次H5应用轻量优化方案调研与实施

news2024/11/14 20:29:06

由于H5应用具备开发周期短、灵活性好的特点,所以OA项目应用功能开发过程中经常结合WebView +H5进行Hybrid模式开发,但Android 原生WebView客观存在的性能问题,导致H5应用加载速度慢,影响用户体验。基于OA H5应用中找到审批详情加载慢的原因,并对其优化。

一个页面在WebView中加载的粗略流程如下:

WebView初始化

当App首次打开时,默认是并不初始化浏览器内核的;只有当创建WebView实例的时候,才会创建WebView的基础框架;所以与浏览器不同,App中打开WebView的第一步并不是建立连接,而是启动浏览器内核

针对Android WebView的初始化,分为首次初始化与第二次初始化。

首次初始化时间:客户端冷启动后,第一次打开WebView,从开始创建WebView到开始建立网络连接之间的时间

二次初始化时间:在打开过WebView后,退出WebView,再重新打开WebView,从开始创建WebView到开始建立网络连接之间的时间

设备环境 首次初始化(ms) 第二次初始化(ms)
华为Mate 20 pro EMUI 10.1.0 (Android 10.0) 196.2 34.7
华为P20 pro EMUI 10.0.0(Android 10.0) 356.1 56.8
华为EH880 EMUI4.0(Android 6.0) 191.6 43.7

以上皆为在OA应用上测试15次得出的平均数据

OA App 版本 1.0.30.*

公司生产环境-通知公告全区

由此可见,WebView在首次比非首次初始化时间消耗很多;可以尝试将WebView首次初始化提前准备,作为一个优化点。

方案: 提前初始化WebView备用。

数据加载

根据W3C介绍的有关页面导航时序规范,给我们提供了navigation Timing交互性能检测指标,可以帮助我们量化有关数据加载的指标。

具体的参数说明可以在官方了解 Navigation Timing

在性能优化方面,我们可以通过Navigation Timing 帮我们省去了繁琐的手动断点的操作,而且提供了以前我们我们无法获取的数据,比如DNS和TCP连接所需的时间。同时,Chrome给我们提供了辅助插件 DevTools可以协助调试。

Performance指标

NekWork指标

从性能指标与网络请求的过程看出,在加载页面时对首屏展示的时间直接影响了整体页面的体验效果。Web页面是由许多个资源和请求、渲染、绘制等一起参与加载出来的,而每个资源(

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2122233.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

快手怎么关闭ip地址 抖音ip属地如何隐藏

快手怎么关闭ip地址 要在快手上关闭IP地址的显示,您可以通过以下步骤来操作,以保护您的隐私: ‌打开快手APP‌:首先,确保您已经安装了快手APP,并且处于登录状态。 ‌进入设置页面‌:在快手AP…

2024骨传导耳机哪个牌子好?分享五款资深用户好评的骨传导耳机!

随着骨传导耳机市场的稳步增长,消费者群体日益扩大,对使用安全与品质的关注也随之提升。值得注意的是,市场上涌现出不少由非专业制造商贴牌或网络红人推广的骨传导耳机产品,这些产品往往因缺乏深厚的技术底蕴与精细的音质调校&…

聚类案例——汽车是否值得购买

对汽车是否值得购买,进行聚类分析: 1、数据指标解释: buying, 购买费用 maint, 维修费用 doors, 车门数量 person, 乘坐人数 lug_boot, 行李箱容量 safety, 安全性 2、对数据进行转换 将字符串转换映射量化为数字 数据加载&#xff1a…

编程珠玑3-8

问题 8.[S.C.Johnnson]七段显示设备实现十进制数字: 的廉价显示。七段显示通常如下编号: 编写一个使用5个七段显示数字来显示16位正整数的程序。输出为一个5个字节的数组,当且仅当数字j中的第i段点亮时,字节j中的位i置1 分析 简…

Mac视频vedio转成gif图

方法一:系统自带:Keynote 1、用"Keynote"创建幻灯片。 2、把视频拖拽进入。 3、Keynote右上角有个“文稿”,点击调整幻灯片大小。(坑点:按比例调整) 4、文件 -> 导出为“Gif动画”。 方法…

TDesign:腾讯的开源企业级前端框架,能和ant-design一战吗?

TDesign 是一套拥有完整的 设计价值观 和 视觉风格指南 的企业级设计体系,同时提供了丰富的 设计资源。TDesign 在设计体系基础上产出基于 Vue、React、小程序等业界主流技术栈的组件库解决方案。是不是有点晚了? 请大家各抒己见。

【开源大模型生态7】华为的盘古大模型

鹏程盘古模型是全球首个全开源2000亿参数的自回归中文预训练语言大模型,在知识问答、知识检索、知识推理、阅读理解等文本生成领域表现突出。 2070亿参数,64层。 这里注意几个概念。 参数(Parameters): 参数是指构成模…

K8s中如何使用etcd进行集群信息的备份与恢复

这里写目录标题 ETCD是什么?1. **`etcd`(服务)**2. **`etcdctl`(客户端工具)**如何安装etcdctl(客户端工具)查看目前K8s自带etcd中的版本信息安装对应版本的etcdutl工具下载 `etcdutl` 3.5.7 版本配置环境变量创建备份文件验证一下备份的快照文件备份文件恢复的效果演示…

MmAP(论文解读) : Multi-Modal Alignment Prompt for Cross-Domain Multi-Task Learning

MmAP:跨领域多任务学习的多模态提示对齐 AAAI 2024 摘要 多任务学习(Multi-Task Learning,MTL)同时训练多个相关的任务,从而能够提高单个任务的性能。通常,一个多任务网络架构包含共享backbone和任务特定…

根据NVeloDocx Word模板引擎生成Word(三)

基于永久免费开放的《E6低代码开发平台》的Word模版引擎NVeloDocx,实现根据Word模版生成Word文件,前面2篇已经非常详细介绍了《主表单字段》,《子表记录循环输入到表格》。那这一篇我们就介绍插入单张图片、二维码,条形码等等&…

区块链媒体:区块链媒体套餐倾心推广解析!

塞翁失马,区块链媒体套餐,两者看似毫不相干,实际上却反映了区块链技术的广泛运用和媒体领域的创新模式。本文将带你深入了解这一新兴领域的背后故事,并分析区块链媒体套餐推广的关键因素。 塞翁失马的寓意 塞翁失马是中国古代的一…

实例讲解电动汽车车速计算算法及Simulink建模方法

电动汽车的车速信号是一个非常重要的信号,在VCU软件开发中,车速一般需要通过采集其他控制器车速或者通过电机转速间接计算出来,作为仪表显示车速、限速控制、剩余续驶里程计算等使用,因此,在VCU软件开发中,…

有什么免费好用的ai写作软件?2024帮助你快速进行写作的软件

有什么免费好用的ai写作软件?2024帮助你快速进行写作的软件 AI写作软件如今在提升写作效率、生成灵感、以及帮助完成复杂的写作任务方面表现得越来越出色。以下是五款免费且好用的AI写作软件,它们能够帮助你快速进行写作,无论是博客文章、市…

echarts多组堆叠柱状图

一、效果图 二、代码实现 1、创建容器 <el-card class"box-card"><div slot"header" class"clearfix"><span>课堂学习</span></div><div id"class-learning" style"height: 360px">&l…

strtok与strtok_r函数及线程安全问题

#include <string.h> char *strtok(char *str, const char *delim); char *strtok_r(char *str, const char *delim, char **saveptr); 总的&#xff1a;这两个函数都是分割字符串的函数&#xff0c;但是前者是线程不安全的&#xff0c;后者是线程安全的。 我们先从使用…

网络药理学:分子对接之二:PDB数据库的使用(已知PDB ID)、PubChem数据库如果没有3D结构

PDB数据库使用 官方地址&#xff1a;https://www.rcsb.org/ 首页如下&#xff1a; 我们以热休克蛋白HSP90AA1为例&#xff0c;其PDB ID为7DHG&#xff0c;所以我们在搜索栏输入7DHG&#xff1a; 主要关注红框里的几个地方。 Download 下载文件&#xff0c;一般选择PDB For…

车载以太网

目录 概述 发展历史 总体架构 相关组织介绍 主流车载网络系统 各种总线比较 概述 随着汽车电动化进程的加速推进,手机控制车辆以及彼此交互的场景不断扩大,可以想象未来联网需求只会不断拓展,无论是车内还是车外的联网需求都不约而同的提出了更多网络带宽的重要性。 为…

知识赋能:构建高效测试团队的关键

目录 ​​​​​​问题背景 知识库的重要性 新员工的融入与关键岗位的风险控制 知识库的构成 常见问题讨论 团队历史包袱重、老员工不配合&#xff0c;怎么办&#xff1f; 1. 明确愿景和目标 2. 激励与认可 3. 赋予责任与参与感 4. 循序渐进&#xff0c;逐步推进 5.…

C# 路径操作

一、打开程序所在路径 try{string debugPath System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location);System.Diagnostics.Process.Start(debugPath);}catch (Exception ex){MessageBox.Show("无法打开目录&#xff1a;" e…

[开源]YOLOv8+Pyside6的交通红绿灯目标检测源码

[开源]YOLOv8Pyside6的交通红绿灯目标检测源码 一. 项目介绍源码链接 该系统是yolov8目标检测可视化界面检测系统&#xff0c;支持图片、视频、摄像头检测. 系统的模型是自己训练的模型, 源码自取 源码链接 如需自己训练模型, 数据集链接 二. 作者的运行环境 python3.8tor…