当前位置: 首页 > 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中存放的变量在更新时会触发页面刷新,对于与视图无关的变量应该存在页面之外。

相关文章:

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

1. 合理的设置可点击元素的响应区域大小; 比较常见的是页面的点击按钮太小,用户点击不到按钮,这样用户体验很不好。 2. 避免渲染页面耗时过长; 当页面渲染时间过长的话,会让用户感觉非常卡顿,当出现这种…...

Android14之获取包名/类名/服务名(二百二十三)

简介: CSDN博客专家,专注Android/Linux系统,分享多mic语音方案、音视频、编解码等技术,与大家一起成长! 优质专栏:Audio工程师进阶系列【原创干货持续更新中……】🚀 优质专栏:多媒…...

FreeU: Free Lunch in Diffusion U-Net——【代码复现】

这篇文章发表于CVPR 2024,官网地址:ChenyangSi/FreeU: FreeU: Free Lunch in Diffusion U-Net (CVPR2024 Oral) (github.com) 一、环境准备 提前准备好python、pytorch环境 二、下载项目依赖 demo下有一个requirements.txt文件, pip inst…...

第三方商城对接重构(HF202407)

文章目录 项目背景一、模块范围二、问题方案1. 商品模块整体来说这块对接的不是太顺利,梳理了几条大概的思路: 2. 订单模块3. 售后4. 发票5. 结算单 经验总结 项目背景 作为供应商入围第三方商城成功,然后运营了一段时间,第三方通…...

如何在Windows 11上复制文件和文件夹路径?这里提供几种方法

在Windows 11上复制文件或文件夹的路径就像在右键单击菜单中选择一个选项或按键盘快捷键一样简单。我们将向你展示如何在电脑上以各种方式进行操作。 从右键单击菜单 复制文件或文件夹路径的最简单方法是在该项目的右键单击菜单中选择一个选项。你也可以使用此方法复制多个项…...

大数据Spark 面经

1: Spark 整体架构 Spark 是新一代的大数据处理引擎,支持批处理和流处理,也还支持各种机器学习和图计算,它就是一个Master-worker 架构,所以整个的架构就如下所示: 2: Spark 任务提交命令 一般我们使用shell 命令提…...

绝区叁--如何在移动设备上本地运行LLM

随着大型语言模型 (LLM)(例如Llama 2和Llama 3)不断突破人工智能的界限,它们正在改变我们与周围技术的互动方式。这些模型早已集成到我们的手机中,但到目前为止,它们理解和处理请求的能力还非常有限。然而,…...

Interview preparation--Https 工作流程

HTTP 传输的弊端 如上图,Http进行数据传输的时候是明文传输,导致任何人都有可能截获信息,篡改信息如果此时黑客冒充服务器,或者黑客窃取信息,则其可以返回任意信息给客户端,而且不被客户端察觉,…...

集成学习(三)GBDT 梯度提升树

前面学习了:集成学习(二)Boosting-CSDN博客 梯度提升树:GBDT-Gradient Boosting Decision Tree 一、介绍 作为当代众多经典算法的基础,GBDT的求解过程可谓十分精妙,它不仅开创性地舍弃了使用原始标签进行…...

后端工作之一:CrapApi —— API接口管理系统部署

一个API接口的网络请求都有这些基本元素构成: API接口大多数是由后端编写,前端开发人员进行请求调用 就是一个网络请求的流程。 API(Application Programming Interface)接口是现代软件开发中不可或缺的一部分。它们提供了一种…...

20240706 xenomai系统中网口(m2/minipcie I210网卡)的实时驱动更换

lspci 查看网口 查看网口驱动 1 ubuntu 查看网口驱动 在Ubuntu中,您可以使用lshw命令来查看网络接口的驱动信息。如果lshw没有安装,您可以通过执行以下命令来安装它: sudo apt-get update sudo apt-get install lshw 安装完成后&#xff…...

模型训练之数据集

我们知道人工智能的四大要素:数据、算法、算力、场景。我们训练模型离不开数据 目标 一、数据集划分 定义 数据集:训练集是一组训练数据。 样本:一组数据中一个数据 特征:反映样本在某方面的表现、属性或性质事项 训练集&#…...

【TB作品】数码管独立按键密码锁,ATMEGA16单片机,Proteus仿真 atmega16数码管独立按键密码锁

文章目录 基于ATmega16的数码管独立按键密码锁设计实验报告实验背景硬件介绍主要元器件电路连接 设计原理硬件设计软件设计 程序原理延时函数独立按键检测密码显示主函数 资源代码 基于ATmega16的数码管独立按键密码锁设计实验报告 实验背景 本实验旨在设计并实现一个基于ATm…...

数据库主从复制

目录 一.主从复制架构 二.主从复制原理 三.实现主从复制配置 1.新建主从复制 2.实战遇到问题 3.复制错误解决方法 4.级联 主从复制 5.半同步复制 MySQL数据库的主从复制(Master-Slave Replication)是一种常见的数据库复制架构,用于提…...

昇思25天学习打卡营第13天|BERT

一、简介: BERT全称是来自变换器的双向编码器表征量(Bidirectional Encoder Representations from Transformers),它是Google于2018年末开发并发布的一种新型语言模型。与BERT模型相似的预训练语言模型例如问答、命名实体识别、自…...

跨平台书签管理器 - Raindrop

传统的浏览器书签功能虽然方便,但在管理和分类上存在诸多局限。今天,我要向大家推荐一款功能强大的跨平台书签管理-Raindrop https://raindrop.io/ 📢 主要功能: 智能分类和标签管理 强大的搜索功能 跨平台支持 分享与协作 卡片式…...

均匀采样信号的鲁棒Savistky-Golay滤波(MATLAB)

S-G滤波器又称S-G卷积平滑器,它是一种特殊的低通滤波器,用来平滑噪声数据。该滤波器被广泛地运用于信号去噪,采用在时域内基于多项式最小二乘法及窗口移动实现最佳拟合的方法。与通常的滤波器要经过时域-频域-时域变换…...

c++ 可以再头文件种直接给成员变量赋值吗

在C中,你通常不能在头文件中直接给类的成员变量赋值,因为这会导致每个包含该头文件的源文件中都尝试进行赋值,从而引发多重定义错误。然而,你可以在类的构造函数中初始化成员变量,或者在类声明中使用初始化列表或默认成…...

47.HOOK引擎优化支持CALL与JMP位置做HOOK

免责声明:内容仅供学习参考,请合法利用知识,禁止进行违法犯罪活动! 上一个内容:46.修复HOOK对代码造成的破坏 以 46.修复HOOK对代码造成的破坏 它的代码为基础进行修改 优化的是让引擎支持从短跳JMP(E9&…...

liunx上修改Firefox版本号

在Linux上修改Firefox的版本号并不直接推荐也不鼓励,因为这可能会影响到浏览器的安全性、兼容性和自动更新功能。但如果你因为某些特殊测试场景确实需要修改其显示的版本号(请注意,这样做可能会引发不可预料的问题),可…...

使用docker在3台服务器上搭建基于redis 6.x的一主两从三台均是哨兵模式

一、环境及版本说明 如果服务器已经安装了docker,则忽略此步骤,如果没有安装,则可以按照一下方式安装: 1. 在线安装(有互联网环境): 请看我这篇文章 传送阵>> 点我查看 2. 离线安装(内网环境):请看我这篇文章 传送阵>> 点我查看 说明:假设每台服务器已…...

设计模式和设计原则回顾

设计模式和设计原则回顾 23种设计模式是设计原则的完美体现,设计原则设计原则是设计模式的理论基石, 设计模式 在经典的设计模式分类中(如《设计模式:可复用面向对象软件的基础》一书中),总共有23种设计模式,分为三大类: 一、创建型模式(5种) 1. 单例模式(Sing…...

springboot 百货中心供应链管理系统小程序

一、前言 随着我国经济迅速发展,人们对手机的需求越来越大,各种手机软件也都在被广泛应用,但是对于手机进行数据信息管理,对于手机的各种软件也是备受用户的喜爱,百货中心供应链管理系统被用户普遍使用,为方…...

边缘计算医疗风险自查APP开发方案

核心目标:在便携设备(智能手表/家用检测仪)部署轻量化疾病预测模型,实现低延迟、隐私安全的实时健康风险评估。 一、技术架构设计 #mermaid-svg-iuNaeeLK2YoFKfao {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg…...

Java如何权衡是使用无序的数组还是有序的数组

在 Java 中,选择有序数组还是无序数组取决于具体场景的性能需求与操作特点。以下是关键权衡因素及决策指南: ⚖️ 核心权衡维度 维度有序数组无序数组查询性能二分查找 O(log n) ✅线性扫描 O(n) ❌插入/删除需移位维护顺序 O(n) ❌直接操作尾部 O(1) ✅内存开销与无序数组相…...

linux arm系统烧录

1、打开瑞芯微程序 2、按住linux arm 的 recover按键 插入电源 3、当瑞芯微检测到有设备 4、松开recover按键 5、选择升级固件 6、点击固件选择本地刷机的linux arm 镜像 7、点击升级 (忘了有没有这步了 估计有) 刷机程序 和 镜像 就不提供了。要刷的时…...

Netty从入门到进阶(二)

二、Netty入门 1. 概述 1.1 Netty是什么 Netty is an asynchronous event-driven network application framework for rapid development of maintainable high performance protocol servers & clients. Netty是一个异步的、基于事件驱动的网络应用框架,用于…...

基于Springboot+Vue的办公管理系统

角色: 管理员、员工 技术: 后端: SpringBoot, Vue2, MySQL, Mybatis-Plus 前端: Vue2, Element-UI, Axios, Echarts, Vue-Router 核心功能: 该办公管理系统是一个综合性的企业内部管理平台,旨在提升企业运营效率和员工管理水…...

Python实现简单音频数据压缩与解压算法

Python实现简单音频数据压缩与解压算法 引言 在音频数据处理中,压缩算法是降低存储成本和传输效率的关键技术。Python作为一门灵活且功能强大的编程语言,提供了丰富的库和工具来实现音频数据的压缩与解压。本文将通过一个简单的音频数据压缩与解压算法…...

云安全与网络安全:核心区别与协同作用解析

在数字化转型的浪潮中,云安全与网络安全作为信息安全的两大支柱,常被混淆但本质不同。本文将从概念、责任分工、技术手段、威胁类型等维度深入解析两者的差异,并探讨它们的协同作用。 一、核心区别 定义与范围 网络安全:聚焦于保…...