Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >开发日志2021/5/30-首页轮播图性能

开发日志2021/5/30-首页轮播图性能

作者头像
努力的Greatiga
发布于 2022-07-25 02:22:24
发布于 2022-07-25 02:22:24
4690
举报

1 首页性能

1.1 问题

突然发现刚刚开发完成的首页性能损耗较大,通过火狐浏览器调试发现、平均fps降到了35左右。页面已经出现明显卡顿

1.2 查找原因

  • 切换其他页面后,fps恢复到60左右,这说明不是全局变量或者函数的影响
  • 因此问题范围定在了首页
  • 通过火狐性能调试器查看:页面有大量的样式计算和重绘
  • 因为之前首页做了轮播图,所以立马就考虑到是不是轮播的问题
  • 首页轮播图是通过改变optiacty值来做淡入淡出效果的,所以打印了日志,发现轮播一次react组件的更新竟高达200多次。
  • 那么这样一来问题就确定了,轮播图转换的那1s钟时间内,页面就要重新计算和绘制样式200多次,不卡顿才怪

1.3 解决方案

  • 将淡入淡出的效果交给css来做。
  • 设置两个class样式,并利用css原生的动画 animation 来控制 optiacty 来达到淡入淡出的效果
  • 比如设置第一个 class 样式并且名为 show,控制 optiacty 从 0 到 1
  • 比如设置第二个 class 样式并且名为 hidden,控制 optiacty 从 1 到 0
  • 每当我们要轮播时,保持现在展示的组件不变,并把即将展示的组件按html标签顺序规则,将它置于当前展示组件的底部。而此时我们应该还看不到即将展示的组件
  • 之后将 show 的样式给到隐藏在底部的即将展示的组件,将 hidden 的样式给到目前展示的组件
  • 这样一来目前展示的组件就会开始 hidden 动画慢慢变淡,而即将展示的组件开始 show 动画逐渐显现
  • 当动画完成时(这里可以设定时器等待动画完成),立马将当前展示组件更新为即将展示组件的数据,并且恢复目前展示组件的样式为正常显示样式,底部就不用管它了,反正被遮住了。
  • 下一次轮播就重复上述过程
  • 这样也就达到了淡入淡出的效果,也尽可能不去影响太多性能
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
自己实现PC端jQuery版轮播图
最近其他项目不是很忙,被安排给公司的官网项目做一个新的页面(之前没接触公司官网项目),其中有一个用到轮播图的地方,最开始想直接用swiper.js插件实现就好了,可是发现官网项目里之前都没有引入过swiper.js,后来想了想,就不引入它了,免得又得增加依次一次网络请求,项目里既然已经用到了jQuery,那就索性用jQuery写一个轮播图吧。
用户1187932
2018/03/09
11.3K1
自己实现PC端jQuery版轮播图
用javascript实现轮播图淡入淡出效果
程序媛夏天
2024/01/18
1780
FlexSlider图片轮播插件的使用
Flexslider是一款基于的jQuery内容滚动插件,不用自己写轮播图的代码,现在可以直接使用这个插件。 首先在页面head部位载入jquery库文件和Flexslider插件,以及Flexsli
benny
2018/03/06
4K0
FlexSlider图片轮播插件的使用
JavaScript 轮播图:让网页焕发生机
欢迎大家来到本篇博客,今天我们将一起探讨如何使用 JavaScript 创建一个精美的轮播图。轮播图是现代网站设计的关键元素之一,它能够使网页更加吸引人,提高用户体验。无需担心,本文将面向基础小白,从头开始解释每一步。
繁依Fanyi
2023/11/03
9210
❤️创意网页:打造简洁美观的网页轮播图(HTML简单实现轮播图)操作简单可以直接使用
在代码中,我们使用了一些CSS样式和JavaScript来实现轮播图的效果。CSS样式用于定义页面的布局和外观,而JavaScript则用于控制幻灯片的切换和轮播。
命运之光
2024/03/20
3.9K0
❤️创意网页:打造简洁美观的网页轮播图(HTML简单实现轮播图)操作简单可以直接使用
基于antd实现一个轮播图
关于antd的使用这里就不多说了,前面已经写过了,从零开始学习React-引入Ant Design 组件(八):https://www.jianshu.com/p/e7e905d89673,现在为了对组件的熟悉,来根据文档写一个常见的轮播图吧。
王小婷
2019/12/11
2.6K0
利用jQuery手动实现一个轮播图
目前有很多的轮播图插件,但是有些时候需要兼容低版本浏览器的时候,很多插件就不再兼容,因此我们需要自己手动的实现轮播图的功能,下面给大家简单的介绍一下如何使用jQuery开发一个轮播图。
王小婷
2020/10/28
2.2K0
用上AIGC的前端开发据说都早下班2小时了
在互联网技术迅速发展的今天,随着 OpenAI 大语言模型的横空出世,AIGC也悄然而至,目前已经开始渗透到前端开发的方方面面。
老码小张
2023/06/06
2.9K0
用上AIGC的前端开发据说都早下班2小时了
微信小程序实训之轮播图效果
由于微信小程序,整个项目编译后的大小不能超过1M,编码之前需准备三张图片把它放在image目录里面。
张哥编程
2024/12/13
3520
微信小程序实训之轮播图效果
轮播图效果,不再局限于JS制作!
HTML5学堂(码匠):网页的轮播图一直都是个比较精美的制作,同时也是用户体验较佳的效果。在开发工程师进行制作的时候往往会选择使用JS来书写,由此不禁会问,难道真的只有使用JS才能制作轮播图吗? 本文主要内容 1. 效果展示 2. 主要涉及到的知识点 3. 基本实现思路 4. 案例实现 1. 效果展示 CSS3动画效果的强大不言而喻,自它出现一直是热度不减,毋庸置疑的是CSS3动画的出现在一定程度上降低了动画效果的实现难度。其精练的代码把我们从复杂的JS制作中解放出来,如下的轮播图效果即是纯CSS3制作的。
HTML5学堂
2018/03/13
5K0
轮播图效果,不再局限于JS制作!
【云+社区年度征文】简单的无缝轮播图
轮播图出现各大网站上-无论是pc还是移动端,尤其是电商网站必然能看见轮播图,它使得用户不用滚动屏幕就能看到更多内容,也常常作为广告位。而作为一个前端工程师,手写轮播图是一个必备的技能。
_kyle
2020/12/21
1.1K0
vue.js项目中用原生js实现移动端的轮播图
今天我在vue.js项目实战开发过程中遇到了实现轮播图效果的问题,因为不想因为一个轮播图而引用整个jquery,而且我还发现自己根本就不清楚移动端的一些事件,所以我就进行了一些资料查找,并最终解决了这个问题,接下来跟大家分享一下我的解决问题的过程.
@零一
2021/01/29
9.2K0
vue.js项目中用原生js实现移动端的轮播图
掌握这个技术, 给轮播图和文本插上自由之翼
今年第一篇文章, 不会写的太干, 主要以开拓思维和送粉丝福利为主. 大致包含如下两部分:
徐小夕
2024/01/09
1600
掌握这个技术, 给轮播图和文本插上自由之翼
微信商城小程序云开发版第5章,首页轮播图的实现
由于我们的顶部轮播图要做成动态的数据,所以这个数据就要存到数据库里。常用的存储数据的数据库有下面几种
编程小石头
2021/01/12
2.9K3
微信商城小程序云开发版第5章,首页轮播图的实现
Java实现静态轮播图:原理解析与案例分享
今天我要给大家分享一些自己日常学习到的一些知识点,并以文字的形式跟大家一起交流,互相学习,一个人虽可以走的更快,但一群人可以走的更远。
喵手
2024/12/29
1860
Java实现静态轮播图:原理解析与案例分享
原生js实现淡入淡出轮播图效果
程序媛夏天
2024/01/18
2750
原生js实现淡入淡出轮播图效果
JS实现超简易轮播图
预览地址: https://codepen.io/klren0312/full/ymvEbr
治电小白菜
2020/08/25
10.6K0
JS实现超简易轮播图
JS经典案例-无缝滚动轮播图(纯JS)
本文将以最基础的 HTML+css+JavaScript 来实现一个无缝滚动的轮播图案例。
空白诗
2024/06/14
1.3K0
JS经典案例-无缝滚动轮播图(纯JS)
前端(四)-jQuery
$(this)就是将这个dom对象转换成jquery对象,就可以对这个对象进行操作;
化羽羽
2022/10/28
8.7K0
微信小程序——轮播图、组件传值、下拉刷新、导航 实战开发
滑块视图容器。其中只可放置swiper-item组件,否则会导致未定义的行为。 属性表如下
wsuo
2020/09/22
1.6K0
相关推荐
自己实现PC端jQuery版轮播图
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档