当前位置: 首页 > news >正文

微信小程序性能与体验优化

1. 合理的设置可点击元素的响应区域大小;

比较常见的是页面的点击按钮太小,用户点击不到按钮,这样用户体验很不好。

2. 避免渲染页面耗时过长;

当页面渲染时间过长的话,会让用户感觉非常卡顿,当出现这种情况时,我们应该检查一下当前渲染的页面是不过大。

3. 避免执行脚本耗时过长;

执行脚本耗时过长,用户也会感觉到非常卡顿,体验非常不好,如果出现这种问题,我们应该检查一下脚本的执行逻辑是否有问题,需要对脚本的执行逻辑进行相关的优化。

4. 对网络请求做必要的缓存以避免多余的请求;

当每次从小程序从服务端去请求接口时,都会让用户有一个等待的时间,如果等待的时间过长,也会造成非常不好的体验,所以我们应该尽量避免多余的请求,另外针对多次请求的相同数据,我们应该对数据做相应的缓存。

5. 不要引入未使用的WXSS样式;

小程序里未使用的样式应该删除掉,以避免小程序打包体积过大,影响用户加载小程序的速度。

6. 文字颜色与背景色搭配要好,适宜的用户对比度更方便用户阅读;

小程序的界面建议有专业的美工进行颜色搭配。

7. 所有资源请求都用HTTPS;

小程序在上线后的接口地址必须是HTTPS的,否则无法正常请求;

8. 去掉官方废弃的API和接口;

小程序在不断更新中,有些API和接口会逐渐废弃,特别是获取用户信息的相关功能,现在已经全面废弃了,所以要特别注意;

9. 避免过大的WXML节点数目,一般应遵循以下规则:

(1). 一个页面少于1000个WXML节点;

(2). 节点树深度少于30层;

(3). 子节点树不大于60个;

10. 避免将不可能访问到的页面打包在小程序里;

小程序在开发过程中,可能会写一些临时页面在项目里面,比如一些Demo示例,在小程序在打包上传时,应将无用的页面删除掉,以减小小程序包的体积。

11. 及时回收定时器;

小程序中的定时器是全局的,它并不会随着页面的销毁页消失,所以当页面消毁时需要手动清除定时器。

12. 避免使用:active伪类来实现点击状态;

对于需要加上点击态的地方可以使用navigator标签来实现;

13. 滚动区域可开启惯性滚动以增强体验;

在安卓手机上,默认的惯性滚动功能,而在IOS手机上面,需要加上如下样式才能开启惯性滚动功能。

-webkit-overflow-scrolling:touch

14. 避免出现JavaScript异常;

如果小程序出现JavaScript异常,会导致小程序的交互出现异常,影响用户体验。

15. 所有的响应正常;

小程序的响应如果异常,页面会一直处于加载状态中,用户无法正常使用。

16. 所有请求的耗时不能太久;

小程序的请求如果耗时太久,会导致用户体验不好,特别是一些用于投流的小程序,用户首次打开的速度特别重要。

17. 避免短时间内发起太多的图片请求;

如果在短期内加载很多的图片会导致触发并行加载,这样就会加载的很慢,多图片加载时一定要使用懒加载功能。

18. 避免短时间内发起太多的请求;

小程序短时间加载太多的请求会比较耗时,用户等待过久会影响用户体验。

19. 避免setData的数据过大;

执行 setData操作时,逻辑层会把数据传给系统层,系统层然后再传给视图层,这种层层传递对数据的大小的严格的要求,数据不能超过1MB。

20. 避免setData的调用过于频繁;

频繁的调用setData时,数据从逻辑层到达视图层时,可能无法实时的发生改变。

21. 避免将未绑定的WXML的变量传入setData;

在data中存放的变量在更新时会触发页面刷新,对于与视图无关的变量应该存在页面之外。

http://www.lryc.cn/news/393430.html

相关文章:

  • Android14之获取包名/类名/服务名(二百二十三)
  • FreeU: Free Lunch in Diffusion U-Net——【代码复现】
  • 第三方商城对接重构(HF202407)
  • 如何在Windows 11上复制文件和文件夹路径?这里提供几种方法
  • 大数据Spark 面经
  • 绝区叁--如何在移动设备上本地运行LLM
  • Interview preparation--Https 工作流程
  • 集成学习(三)GBDT 梯度提升树
  • 后端工作之一:CrapApi —— API接口管理系统部署
  • 20240706 xenomai系统中网口(m2/minipcie I210网卡)的实时驱动更换
  • 模型训练之数据集
  • 【TB作品】数码管独立按键密码锁,ATMEGA16单片机,Proteus仿真 atmega16数码管独立按键密码锁
  • 数据库主从复制
  • 昇思25天学习打卡营第13天|BERT
  • 跨平台书签管理器 - Raindrop
  • 均匀采样信号的鲁棒Savistky-Golay滤波(MATLAB)
  • c++ 可以再头文件种直接给成员变量赋值吗
  • 47.HOOK引擎优化支持CALL与JMP位置做HOOK
  • liunx上修改Firefox版本号
  • bug——多重定义
  • 将堆内存的最小值(Xms)与最大值(Xmx)设置为相同的配置,可以防止JVM在运行过程中根据需要动态调整堆内存大小
  • 安装 tesseract
  • 为适配kubelet:v0.4 安装指定版本的docker
  • vivado CLOCK_REGION、CLOCK_ROOT
  • alphazero学习
  • 剖析DeFi交易产品之UniswapV3:交易路由合约
  • Agent下载安装步骤
  • 2024年AI技术深入研究
  • Apache Seata分布式事务启用Nacos做配置中心
  • Emacs之解决:java-mode占用C-c C-c问题(一百四十六)