首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏原创分享

    react虚拟滚动的实现

    (i++)) } return arr } const data = getData() const itemHeight = 21 const itemLength = 10 // 是否开启虚拟滚动

    1.9K30发布于 2019-12-23
  • 来自专栏Czy‘s Blog

    基于React的虚拟滚动方案

    而此时我们通常就需要虚拟滚动来实现性能优化,当我们拥有大量数据需要在用户界面中以列表或表格的形式展示时,这种性能优化方式可以大幅改善用户体验和应用性能,那么在本文中就以固定高度和非固定高度两种场景展开虚拟滚动的实现 描述 实现虚拟滚动通常并不是非常复杂的事情,但是我们需要考虑到很多细节问题。在具体实现之前我思考了一个比较有意思的事情,为什么虚拟滚动能够优化性能。 固定高度 实际上关于虚拟滚动的方案在社区有很多参考,特别是固定高度的虚拟滚动实际上可以做成非常通用的解决方案。那么在这里我们以ArcoDesign的List组件为例来研究一下通用的虚拟滚动实现。 scroll) return void 0; // 视口阈值 取滚动容器高度的一半 const margin = scroll.clientHeight / 2; const current 那么动态高度的虚拟滚动与最开始我们实现的固定高度的虚拟滚动区别在哪,首先是滚动容器的高度,我们在最开始不能够知道滚动容器实际有多高,而是在不断渲染的过程中才能知道实际高度;其次我们不能直接根据滚动的高度计算出当前需要渲染的节点

    70210编辑于 2025-05-22
  • 来自专栏一Li小麦

    虚拟滚动之原理及其封装

    虚拟滚动之原理及其封装 这仍然是笔者正在进行中某个前端基础项目的一项基础研究。 2. 斟酌 非完整渲染的长列表一般有两种方式: •懒渲染:这个就是常见的无限滚动的,每次只渲染一部分(比如 10 条),等剩余部分滚动到可见区域,就再渲染另一部分。 可视区渲染有个更出名的名字,叫做虚拟滚动——指的是只渲染可视区域的列表项,非可见区域的完全不渲染,在滚动滚动时动态更新列表项。 相比较于懒渲染,虚拟滚动要求一次性全部拿到数据,但是滚动条能够完全正确地反映当前页面在全部数据的位置。滚动无非是对几十个dom进行操作,可以达到极高的后续渲染性能。 实现 实现虚拟滚动就是处理滚动滚动后的可见区域的变更,其中具体步骤如下: 1.计算当前可见区域起始数据的 startIndex2.计算当前可见区域结束数据的 endIndex3.计算当前可见区域的数据

    10.4K20发布于 2020-07-10
  • 来自专栏前端技术江湖

    虚拟滚动的 3 种实现方式!

    元素固定高度的虚拟列表 元素不定高度的虚拟列表 元素动态高度的虚拟列表 虚拟列表核心原理 我们先来看一下整个虚拟列表元素的表现。 static-height-scroll 从上面两图我们可以总结出,整个虚拟列表划分为三个区域,分别是上缓冲区(0/2个元素),可视区(n个元素),下缓冲区(2个元素)。 当我们滚动到一个元素离开可视区范围内时,就去掉上缓冲区顶上的一个元素,然后再下缓冲区增加一个元素。这就是虚拟列表的核心原理了。 ={index % 2 ? (2)计算出可视区的起始索引、上缓冲区的起始索引以及下缓冲区的结束索引(就像上图滚动后,上缓冲区的起始索引为2,可视区起始索引为4,下缓冲区结束索引为9)。

    3.1K10编辑于 2023-09-11
  • 【vue】 vue2 监听滚动滚动事件

    return { num: 1, }; }, methods: { onScroll(event) { // 在这里处理滚动事件 console.log("滚动" + `${(this.num += 1)}`, event); }, }, }; </script> <style lang= "scss" scoped> .content { height: 300px; border: 2px solid black; overflow: scroll; }

    16810编辑于 2025-12-15
  • 来自专栏用户3645619的专栏

    2)FlinkSQL滚动窗口demo演示

    滚动窗口(Tumbling Windows) 滚动窗口有固定的大小,是一种对数据进行均匀切片的划分方式。窗口之间没有重叠,也不会有间隔,是“首尾相接”的状态。 滚动窗口可以基于时间定义,也可以基于数据个数定义;需要的参数只有一个,就是窗口的大小(window size)。 ; //每 2s 发送一次消息 int i = 0; Random r=new Random(); String (Tumbling Windows) 滚动窗口有固定的大小,是一种对数据进行均匀切片的划分方式。 滚动窗口可以基于时间定义,也可以基于数据个数定义;需要的参数只有一个, * 就是窗口的大小(window size)。

    61520编辑于 2022-08-08
  • 来自专栏与前端沾边

    mini react-window(一) 实现固定高度虚拟滚动

    ,可视区域有限,看到的数据有限,在用户滚动时,指渲染可是区域内的内容即可,dom 少,渲染少在 github 上也有很多针对 react 的虚拟滚动的库,我们这里对 react-window 的使用和实现 ,进行一下简单的学习分享,了解不同虚拟滚动场景下的使用方式和 react 的优秀封装,希望对你有帮助。 实现固定渲染虚拟滚动创建自己实现组件的目录// src/react-window/index.jsexport {default as FixedSizeList} from '. createLstComponent({})export default FixedSizeList实现 FixedSizeList 组件时我们要注意我们没有直接写, react-window 提供了固定高度非固定高的等几种虚拟滚动场景 图片本小节我们实现了固定高度虚拟列表,代码不是很多,感兴趣的小伙伴可以自己动手实现自己的虚拟滚动库,下一小节我们继续实现其他场景下的滚动列表,如有问题欢迎留言讨论。

    2.7K51编辑于 2022-09-25
  • 来自专栏cloudskyme

    虚拟化技术(2)——存储虚拟

    根据在I/O路径中实现虚拟化的位置不同,虚拟化存储可以分为主机的虚拟存储、网络的虚拟存储、存储设备的虚拟存储。根据控制路径和数据路径的不同,虚拟化存储分为对称虚拟化与不对称虚拟化。 三层模型 根据云存储系统的构成和特点,可将虚拟化存储的模型分为三层:物理设备虚拟化层、存储节点虚拟化层、存储区域网络虚拟化层。 这个虚拟化层由存储节点虚拟模块在存储节点内部实现,对下管理按需分配的存储设备,对上支持存储区域网络虚拟化层。 这个虚拟化层由虚拟存储管理模块在虚拟存储管理服务器上实现,以带外虚拟化方式管理虚拟存储系统的资源分配,为虚拟磁盘管理提供地址映射、查询等服务。 利用虚拟化技术,可以在统一的虚拟化基础架构中,实现跨数据中心的虚拟化管理。 政府信息系统:政府数据存储系统的建设正受到前所未有的重视。

    7.9K60发布于 2018-03-20
  • 来自专栏嘉嘉的博客

    虚拟赛-2总结

    洛谷虚拟赛-2的总结 分数 & 排名 预期分数: 100+80+100+0=280 实际分数: 60+90+0+0=150 排名12 分析 第一题么,看到数据范围觉得要开 long long,实际也在输入时开了

    22510编辑于 2023-02-23
  • 来自专栏用户3645619的专栏

    2)sparkstreaming滚动窗口和滑动窗口演示

    一、滚动窗口(Tumbling Windows) 滚动窗口有固定的大小,是一种对数据进行均匀切片的划分方式。窗口之间没有重叠,也不会有间隔,是“首尾相接”的状态。 滚动窗口可以基于时间定义,也可以基于数据个数定义;需要的参数只有一个,就是窗口的大小(window size)。 import org.apache.spark.api.java.function.Function;import org.apache.spark.api.java.function.VoidFunction2; mapDStream.foreachRDD(new VoidFunction2<JavaRDD<WaterSensor>, Time>() { @Override :图片二、滑动窗口(Sliding Windows)与滚动窗口类似,滑动窗口的大小也是固定的。

    1.7K20编辑于 2022-09-05
  • 【vue】 vue2 | js 实现数字滚动效果

    iconfont icon-BasketballHoop" style="font-size: 50px"> <div class="counter" :data-set="num<em>2</em>"

    </template> <script> export default { data() { return { num1: 37062, num2:

    14710编辑于 2025-12-15
  • vue2 实现数字滚动效果,翻页效果

    实现这种效果有两种方法: 第一种方法 参考文章:【vue2】实现数字纵向滚动效果(计时器效果) 第一种方法虽然实现了效果,但是数值变化整体都重新滚动了,不太好。 this.num = 9999999; }, }, }; </script> <style lang="scss" scoped> </style> 第二种方法 第二种方法效果更好一点,数字滚动更丝滑自然只有变化的数值滚动 这里我就没有封装也就copy了一个demo过来了,问题:1、我封装了首次接受数值时只有第一个数字滚动2、页面首次渲染如果是三个数字,那么宽度就固定了。这时候传过来新值是四个字,可能就会出现内容超出。 isNaN(item)); // 结合CSS 对数字字符进行滚动,显示订单数量 for (let index = 0; index < numberItems.length; index 80px; font-size: 54px; line-height: 41px; text-align: center; list-style: none; // color: #2d7cff

    36610编辑于 2025-12-15
  • 来自专栏JetPack

    ViewPager2实现内部Item的动态滚动

    我们这是一个视频播放页+详情页,考虑到简单快捷,就想到了一个 ViewPager2 就可以实现,简单又快捷,为自己点赞。一想到如此easy,瞬时笑出了猪叫。 解决方法 既然如此,ViewPager2是基于RecyclerView,那么我去调用RecyclerView滚动不就行吗,思路如下: ViewPager2-> RecyclerView, RecyclerView 默认是私有的,可以通过反射或者 getChildAt(0) 获取 RecyclerView不支持 scrollTo() ,可以通过 LinearLayouManager 去滚动 LinearLayoutManager-scrollToPositionWithOffset () 支持滚动到偏移位置 伪代码如下: val layoutManager = (getChildAt(0) as? item动态滚动问题。

    2.1K20编辑于 2022-02-09
  • 来自专栏Java技术圈子

    Linux网络虚拟2

    Linux网络虚拟2 今天我们接着上节课介绍的 Linux 网络知识,继续来学习它们在虚拟化网络方面的应用,从而为后续学习容器编排系统、理解各个容器是如何通过虚拟化网络来协同工作打好基础。 VXLAN 采用 L2 over L4 (MAC in UDP)的报文封装模式,把原本在二层传输的以太帧,放到了四层 UDP 协议的报文体内,同时加入了自己定义的 VXLAN Header。 这样,A1 要和 B2 通信,A1 就把数据包先发送给路由(只需把路由设置为网关即可做到),然后路由根据数据包上的 IP 地址得知 B2 的位置,去掉 VLAN-A 的 VLAN Tag,改用 VLAN-B 的 VLAN Tag 重新封装数据包后,发回给交换机,交换机收到后就可以顺利转发给 B2 了。 由于 A1、B2 各自处于独立的网段上,它们又各自要把同一个路由作为网关使用,这就要求路由器必须同时具备 192.168.1.0/24 和 192.168.2.0/24 的 IP 地址。

    1.1K20编辑于 2023-09-18
  • 来自专栏喵喵侠的社区活动征文

    Vue项目中的虚拟滚动:提升页面渲染性能的最佳实践

    使用虚拟滚动技术,可以有效解决大数据量下的渲染性能问题。本篇文章将带你深入了解虚拟滚动的应用,帮助你在Vue项目中优化页面渲染性能。 什么是虚拟滚动虚拟滚动(Virtual Scrolling)是一种高效的渲染技术,主要用于处理大量数据的长列表或表格。其基本原理是只渲染当前视口内可见的元素,而对不可见的部分仅保留占位符。 这种方法大幅减少了DOM节点的数量,从而提升了渲染性能和滚动流畅度。虚拟滚动的核心有以下 4 点:渲染可见元素:虚拟滚动只会渲染当前视口内的元素,而不是整个列表或表格。 比方说,假设视口中只能显示10个元素,那么虚拟滚动技术只会渲染这10个元素,即使总数据量有上万个。动态更新视口内容:当用户进行滚动操作 时,使用虚拟滚动技术可以动态更新可视区域内的内容。 目前 Vue3 相关的 UI 框架,大部分组件都支持了虚拟滚动,可以直接用,但 Vue2 旧项目相关的虚拟滚动相对较少,可能部分业务场景,需要自己手动实现,比方说下拉选择框、表格等。

    7.9K10编辑于 2024-06-25
  • 来自专栏Czy‘s Blog

    初探富文本之基于虚拟滚动的大型文档性能优化方案

    初探富文本之基于虚拟滚动的大型文档性能优化方案 虚拟滚动是一种优化长列表性能的技术,其通过按需渲染列表项来提高浏览器运行效率。 虚拟滚动 在具体实现之前我思考了一个比较有意思的事情,为什么虚拟滚动能够优化性能。 那么在研究了虚拟滚动的优势之后,我们就可以开始研究虚拟滚动的实现了,在进入到富文本编辑器的块级虚拟滚动之前,我们可以先来研究一下虚拟滚动都是怎么做的。 . */} /> 通过简单分析Arco的通用列表虚拟滚动,我们可以发现实现虚拟滚动似乎并没有那么难,然而在我们的在线文档场景中,实现虚拟滚动可能并不是简单的事情。 scroll) return void 0; // 视口阈值 取滚动容器高度的一半 const margin = scroll.clientHeight / 2; const current

    1.3K10编辑于 2024-06-04
  • 优化长列表性能:虚拟滚动在React中的实践与思考

    问题分析传统渲染方式的问题在于:一次性创建大量DOM节点,占用大量内存每个节点都需要样式计算和布局渲染滚动时频繁重绘,导致界面卡顿解决方案:虚拟滚动虚拟滚动通过只渲染可视区域内的内容来解决这个问题。 基础组件结构首先创建虚拟滚动组件的基本框架:import React, { useState, useRef, useMemo } from 'react';const VirtualScroll = ,性能得到显著提升:指标传统渲染虚拟滚动提升初始加载时间1200ms150ms8倍内存占用85MB12MB7倍滚动FPS10-1555-604-6倍实践中的挑战与解决方案1. ;2. ,虚拟滚动不仅解决了性能问题,还为用户提供了流畅的代码浏览体验。

    67010编辑于 2025-09-04
  • 来自专栏互联网数据官iCDO

    利用“Google Tag Manager V2”实现滚动追踪

    滚动追踪的概念 如果你想收集更多有关访客行为的信息,可以使用“谷歌标签管家第二版”(Google Tag Manager V2)中设置的“滚动追踪”功能,滚动追踪功能是衡量受众如何浏览你所发布的内容以及阅读量的功能 滚动追踪报告会记录你的网站页面中发生的主要行为。 在本文中,我将逐步演示如何使用谷歌标签管家第二版(Google Tag ManagerV2)来“滚动追踪”你的目标网页。 第三步:要使用谷歌标签管家第二版(Google Tag Manager V2)实现滚动追踪,你先要有jQuery Scroll Depth。 你可以在下面找到脚本。 创建第二个数据变量层如下: 数据层名称:eventAction 数据层版本:V2 保存变量。 创建第三个数据变量层如下: 数据层名称:eventLabel 数据层版本:V2 保存变量。 完成调试后,请不要忘记创建一个版本,然后在Google Tag Manager上启动“滚动追踪”功能。 总结 Google Tag Manager版本2与GTM 版本1相比更加简单便捷。

    2.4K70发布于 2018-03-05
  • 来自专栏日常技术分享

    Barchart实现滚动标签跟随滚动

    目前有功能比较强大的柱形图Charts,写这个demo的目的主要是产品要实现 滚动柱形图,标签要跟随滚动。所以重新写了一个简单的demo实现了功能, 具体使用看demo,很简单 ?

    2.6K40发布于 2018-09-13
  • 来自专栏盛开在夏天的太阳

    2. 虚拟化技术--EXSI

    一.什么是VMware ESXi ESXi专为运行虚拟机、最大限度降低配置要求和简化部署而设计。只需几分钟时间,客户便可完成从安装到运行虚拟机的全过程,特别是在下载并安装预配置虚拟设备的时候。 VMware不就是虚拟机么? 为什么还要在虚拟机上在安装一个EXSi呢? 通常我们创建虚拟机, 创建时的centos或者Ubuntu操作系统的虚拟机, 而EXSi是类似于centos和Ubuntu的操作系统, 是一款专门构建裸机的操作系统. 下面我们来操作试试 ? ? 点击f2 ,设置系统 ? 输入用户名和密码 ? 配置网卡, 回车 ? 配置网络适配器, 回车 ? 点击第二块网卡, 按空格键选中, 然后按回车键保存 ? 配置IPv4的网络 ? QAZ2wsx ? 两个新用户创建好了. 2. 添加角色 点击主页-->角色 ? 空白处右击,添加角色 角色名称: user 权限: ? ? 3. 添加资源 ? ? 4.

    2.6K20发布于 2020-09-27
  • 领券