前端大量数据渲染优化【例如:10-100万的DIV元素渲染】 (三种解决方法--待完善)

处理10-100万的DOM元素渲染

其实早就听说过类似的问题(基本上我觉得大部分的开发不会遇到类似的问题,因为多数的人都遇不到这种批量渲染的场景!!!)

在这里插入图片描述



吐槽+思考

1.吐槽 :

提示:下面是我的思考方向和现在的一些实践方案

其实写出来的基本都是有一定成效的,要不然也不会发出来,啊哈哈哈哈哈
遇到这种问题的时候,大多数人张嘴就是使用虚拟列表来处理啊
此时我听到上面那句话后的心里就是下面这张图

在这里插入图片描述

其实第一次听到一次渲染10-100万数据,你有什么方案,我也有一点懵B。
(什么场景会遇到一次性渲染这么多元素,硬要渲染这么多数据那出方案的人不就是傻××)

2.方案 :(思考内容+实践方向)

  1. 尝试一次性渲染 10万条数据 浏览器 :不会写代码就别写
  1. 尝试借助浏览器的虚拟DOM模块进行批量DOM的拆分 (会阻塞主线程)
  1. 借助浏览器的多线程(Worker) 进行DOM的分段插入 (小有成就)
  1. 借助动画渲染渲染函数(RAF),进行DOM的渲染 (数据量小还可以,一旦数据量增大,内存使用率变的太高了)

3.思考:(下面性能图分别对应的是那种方案)

在这里插入图片描述

一、模拟原始的创建DOM的操作(10万-50万)

1. 直接渲染大量DOM,代码如下

HTML结构如下:

<body>
    <div class="content">
        <div class="btnText">1231313</div>
        <button>可以操作页面吗</button>
    </div>
</body>

JavaScript代码如下:

 	const num = 500000 // 50万
    const bodyDom = document.querySelector(".content")
    const btn = document.querySelector('button')
    // 下面是直接诶插入到body中
	for (let index = 0; index < num; index++) {
	        const element1 = document.createElement("div")
	        element1.innerText=index
	        bodyDom.appendChild(element1)
	       
	 }

2. 如下图: Chrome崩溃了(50万个div插入)

如果你要一个一个渲染50万个div,浏览器估计是下面这个心理状态: 会不会开发啊!!!!!
在这里插入图片描述

浏览器崩了(刚开始还是很倔强的,能渲染,刷新几次就废了)

在这里插入图片描述

还给你搞出来一些额外的Buff

在这里插入图片描述

二、

1.引入库

代码如下(示例):

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
import warnings
warnings.filterwarnings('ignore')
import  ssl
ssl._create_default_https_context = ssl._create_unverified_context

2.读入数据

代码如下(示例):

data = pd.read_csv(
    'https://labfile.oss.aliyuncs.com/courses/1283/adult.data.csv')
print(data.head())

该处使用的url网络请求的数据。


总结

提示:这里对文章进行总结:

例如:以上就是今天要讲的内容,本文仅仅简单介绍了pandas的使用,而pandas提供了大量能使我们快速便捷地处理数据的函数和方法。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

满脑子技术的前端工程师

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值