前端性能优化-用户交互体验优化

news2024/9/27 5:49:57

前言

本文总结一些常见的用户交互体验优化的方法

骨架屏

使用 loading 图或者是骨架屏,可以一定程度上减少用户等待加载的焦虑感,让用户感觉没有等太久,这就是用户体验级的优化。

PS: 可以利用 webpack 实现骨架屏的自动生成

图片懒加载

图片懒加载是一种优化网页性能的技术,它通过延迟加载页面上的图片,直到图片进入用户视野(可见区域)时才进行加载。这有助于减少页面加载时间,特别是在包含大量图片的长页面上。

基本原理如下:

  • 页面初次加载时,只加载可见区域内的图片,而对于在用户当前视野之外的图片,不提前加载。

  • 当用户滚动页面,当图片进入可见区域时,通过 JavaScript 触发图片的加载,从而实现逐步加载。

在这个示例中,使用 data-src 属性保存图片的真实 URL,而 src 属性则设置一个占位图像或加载中的图像。使用 JavaScript 检测滚动事件,当图片进入可见区域时,将 data-src 的值赋给 src,触发实际的图片加载。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

完整的 demo 请看 👉 在线效果预览, 查看示例代码请点击此处

长列表虚拟滚动

只有在用户滚动到可见范围内时,才会渲染和呈现列表项。这可以通过监听滚动事件,计算当前可见的列表项,然后仅渲染这些项来实现。

社区中有很多现成的组件可以使用,比如 react-virtualized, vue-virtual-scroller 等

操作防抖节流

可以参考 防抖节流

动画

直接操作 DOM,有可能会引起大面积的重排和重绘,从而引起掉帧的情况,导致用户体验下降。

合理使用 CSS3 GPU 加速,可以避免使用动画之后的重排和重绘,达到更流畅的动画效果。

  • 展开收起过渡动画效果: 下拉组件可以添加过渡动画,让用户感觉更加流畅

图片加载错误重新加载机制

图片加载失败,点击刷新重新加载图片的实现逻辑无非就是,点击刷新的时候往图片 url 追加时间戳。

let imgUrl = "http://example.com/img.png";
const currentTime = +new Date();
imgUrl = `${imgUrl}?${currentTime}`;

本文首发于个人博客前端开发笔记,由于笔者能力有限,文章难免有疏漏之处,欢迎指正

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

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

相关文章

Grafana动态视图在转转推送系统中的应用

1 背景 转转的推送系统为自研产物,实现过程简述为:对外提供一个接入层,以多次MQ转发形式进行多系统交互,内部包括:推送内容过滤、免打扰策略、厂商通道分发等逻辑,最终发起http请求至厂商通道,…

【Android Studio】新new UI老UI的切换

Android studio新版UI 风格和老版本风格切换: File-> Settings-> Appearance-> New UI-> Enable NewUI选项

人工智能大模型如何引领智能时代的革命?

人工智能大模型如何引领智能时代的革命? 人机交互革命:大模型如何提升我们与机器沟通的自然性和智能化程度?计算范式革命:大模型如何影响现有的计算模式,并推动新一代计算技术的演进?认知协作革命&#xff…

海南云亿商务咨询有限公司洞察抖音电商新趋势

在当今这个数字化浪潮汹涌的时代,抖音电商以其独特的魅力,正逐步成为企业转型升级、品牌破圈的重要阵地。而在这片充满机遇与挑战的蓝海中,海南云亿商务咨询有限公司犹如一颗璀璨的新星,凭借其专业的服务能力和敏锐的市场洞察&…

SQL手工注入

目录 1.判断是否存在sql注入点 1.1我们在地址栏中输入?id1 1.2我们在地址栏中输入?id-- 2.联合查询 2.1首先知道表格有几列,如果报错就是超过列数,如果显示正常就是没有超出列数。 2.2爆出显示位,就是看看表格里面哪一列是在页面显示…

[ACM MM 2024] AesExpert 面向图像审美知觉的多模态基础模型

AesExpert: Towards Multi-modality Foundation Model for Image Aesthetics Perception GitHub (arxiv.org) 动机 1. 要解决的问题 图像美学感知的高度抽象性:图像美学感知(IAP)的高度抽象性对当前的多模态大语言模型(MLLMs&…

Redis 7.x 系列【38】缓存预热、缓存雪崩、缓存穿透、缓存击穿

有道无术,术尚可求,有术无道,止于术。 本系列Redis 版本 7.2.5 源码地址:https://gitee.com/pearl-organization/study-redis-demo 文章目录 1. 缓存预热2. 缓存雪崩3. 缓存穿透4. 缓存击穿 1. 缓存预热 关键词:预先加…

某MDM主数据管理系统与蓝凌OA系统集成案例

一、项目背景 某客户使用OA在集团中处于一个重要角色,集团内各流程业务数据都需要通过OA进行审批下发,同某MDM主数据之间进行数据的交互,员工、供应商、法人组织、会计科目等主数据流程,实现各业务板块系统间的业务联通&#x…

动手学深度学习V2每日笔记(使用块的网络VGG)

本文主要参考沐神的视频教程 https://www.bilibili.com/video/BV1Ao4y117Pd/spm_id_fromautoNext&vd_sourcec7bfc6ce0ea0cbe43aa288ba2713e56d 文档教程 https://zh-v2.d2l.ai/ 本文的主要内容对沐神提供的代码中个人不太理解的内容进行笔记记录,内容不会特别严…

postgregSQL配置vector插件

1.下载vector 下载vector:https://pgxn.org/dist/vector/0.5.1/ 放在:C:\Program Files\PostgreSQL\vector-0.5.1 2.安装Visual Studio 2022 下载:https://visualstudio.microsoft.com/zh-hans/downloads/ 安装Visual Studio是为了C编译环…

JL-杰理芯片-认识TA的SDK的第六天

通过修改代码无法解决的错误解决问题的方法: 从头开始一点点的配置,并运行。(配置的是标准SDK) 将无法修改的错误打印到xshell中,去看看是什么原因,就算不能理解,也要看看他运行了几次。 上电开机和按键开机1T1,2T1,一拖二

Together规则引擎 金融解决方案

目录 1.金融法规和期望正在发生变化,快速跟踪您的金融数字化变革!2.抵押贷款功能集(MFS)3.MFS 示例模型4.MFS 知识特点5.MFS特定功能 1.金融法规和期望正在发生变化,快速跟踪您的金融数字化变革! ogether规则引擎使金融机构能够简…

26.9 Django书籍管理练习

1. 搭建环境 1.1 创建数据库 Django本身不会自动创建数据库服务器或数据库实例, 这一步需要手动完成.可以使用Navicat可视化工具或者命令行创建library数据库, 编码格式为utf8_mp4.# 连接数据库 mysql -h localhost -P 3306 -u root -p123456# 创建library数据库并设置编码 c…

面试题:Java 集合类的遍历方式,如何一边遍历 一边删除?

问题一:你用过 Java 中的哪些集合类? ArrayList, LinkedList, HashMap, HashSet, TreeSet, Stack, Queue, PriorityQueue等 问题二:集合中遍历元素的方式? Collection 接口实现子类 1. List 集合 // list 集合public static …

【Linux】进程间通信(管道通信、共享内存通信)

一.什么是进程间通信 进程间通信这五个字很好理解,就是进程和进程之间通信。 那么为什么要有进程间通信呢? 1.数据传输:一个进程需要将它的数据发送给另一个进程 2.资源共享:多个进程之间共享同样的资源 3.通知事件:一…

如何制作自己的python .whl包(支持entry_points)

目录 代码目录结构如下截图所示:dir_test.py 源码如下:list/dir_list.py 源码如下:setup.py 文件源码生成.whl文件指令: 代码目录结构如下截图所示: dir_test.py 源码如下: import os import sys from pat…

RunAsDate(时间限制工具)

参考链接1 参考链接2 参考链接3 下载地址 ps:64位系统需要下载64的RunAsDate

LAMP架构详解

目录 一、Apache详解 1.1 简介 1.2 Apache功能 1.3 apache特点 1.4 三种工作模式 二、LAMP简介 2.1 LAMP平台概述 2.2 构建LAMP平台顺序 2.3 编译安装的优点 2.4 各组件的主要作用 三、wget命令 四、curl命令 五、压力测试工具 一、Apache详解 1.1 简介 Apache …

vue2,v-for中动态渲染本地的图片

一、描述 如果是正常在img标签的src上使用本地的url地址,是可以正常被渲染的,但是我们通过for的形式,动态渲染的话,就会通过网络请求的方式进行渲染,这个形式反而渲染不出来。 二、效果 这个效果,毋庸置…

LVS负载均衡集群部署之—NAT模式的介绍及搭建步骤

一、环境准备 1.准备三台rhel9服务器 服务器名称 主机名 ip地址备注LVS调度服务器lvs.timinglee.org eth0:172.25.254.100(外网) eth1:192.168.0.100(内网) 关闭selinux和防火墙webserver2网站服务器webserver1.timinglee.orgeth0:192.168.…