This topic created in 1971 days ago, the information mentioned may be changed or developed.
目前我使用了前端分页,10 万条数据 每页 20 条 分 5000 页,这样展现倒是可以了,但是搜索的话,要遍历 10 万条数据 还是很慢很慢
```
item.rawData.filter((obj) => {
obj.label.indexOf(val) > -1
})
```
这是我使用 transfer 的搜索方法,去 filter10 万条数据,页面会直接崩溃。请问不通过后端 前端可以解决这个问题吗
15 replies • 2020-12-22 16:48:59 +08:00
 |
|
1
codespots Dec 22, 2020
什么场景下,需要看 5000 页这么多数据?什么场景下搜索需要在前端做?你确定这个搜索不应该在后端实现?
|
 |
|
3
bayallen Dec 22, 2020 via iPhone
这个情况下用 for 循环应该会快点。
|
 |
|
4
3dwelcome Dec 22, 2020
正常情况应该后端处理,如果要前端处理,需要引入 webassembly 来做一些特定筛选算法的优化处理。10 万条数据对于 vue 还是太牵强了。换成汇编转义指令,说不定还能搞一下。 随着 vue.js 流行,让前端负担越来越重。你这种帖子都看到过好几个了,还有载入超大层级数据爆内存的,问怎么解决。
|
 |
|
7
wisunny Dec 22, 2020
之前看到过一个解决方案,用 webworker 多线程,分段搜索,效率还行
|
 |
|
8
jones2000 Dec 22, 2020
搜索肯定不能 for 遍历, 最起码也是关键子做 map 在搜索。如果你是 app 做壳, 或者是 CEF 壳, 直接在本地保存数据,通过文件交互搜索,起码内存不会爆,如果是 10 条新闻数据, 内存都不够读完的。
|
 |
|
9
dorothyREN Dec 22, 2020
你这 万一哪个客户端机器 1G 内存不就直接爆了嘛
|
 |
|
10
iceneet Dec 22, 2020
这种还是后端做吧 前端处理大概率会遇到客户端内存直接爆了的情况
|
 |
|
11
zszhere Dec 22, 2020 via iPhone
楼主是内存厂家派来卧底的么 都这么干内存价格就拉上来了
|
 |
|
14
maocat Dec 22, 2020
1,分段搜索,2000 个分一组,利用 js 的异步特性 2,不用全跑玩,比如第一页,分到 20 个就直接结束(缺点是页码还是要计算,越精确搜索可能越慢)
|
 |
|
15
gzf6 Dec 22, 2020
试试 SQLite
|