• 请不要在回答技术问题时复制粘贴 AI 生成的内容
muunala10221
V2EX  ›  程序员

请问 10 万条数据 使用 element-ui 的 transfer 展现 有什么比较好的办法不卡吗

  •  
  •   muunala10221 · Dec 22, 2020 · 2123 views
    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
    codespots
        1
    codespots  
       Dec 22, 2020
    什么场景下,需要看 5000 页这么多数据?什么场景下搜索需要在前端做?你确定这个搜索不应该在后端实现?
    muunala10221
        2
    muunala10221  
    OP
       Dec 22, 2020
    @codespots 数据库下表的前端展现,后端当然可以实现 我就是想请教下前端用什么办法可以快速过滤筛选
    bayallen
        3
    bayallen  
       Dec 22, 2020 via iPhone
    这个情况下用 for 循环应该会快点。
    3dwelcome
        4
    3dwelcome  
       Dec 22, 2020
    正常情况应该后端处理,如果要前端处理,需要引入 webassembly 来做一些特定筛选算法的优化处理。10 万条数据对于 vue 还是太牵强了。换成汇编转义指令,说不定还能搞一下。
    随着 vue.js 流行,让前端负担越来越重。你这种帖子都看到过好几个了,还有载入超大层级数据爆内存的,问怎么解决。
    muunala10221
        5
    muunala10221  
    OP
       Dec 22, 2020
    @3dwelcome 明白了 感谢
    muunala10221
        6
    muunala10221  
    OP
       Dec 22, 2020
    @ferrum 好的谢谢
    wisunny
        7
    wisunny  
       Dec 22, 2020
    之前看到过一个解决方案,用 webworker 多线程,分段搜索,效率还行
    jones2000
        8
    jones2000  
       Dec 22, 2020
    搜索肯定不能 for 遍历, 最起码也是关键子做 map 在搜索。如果你是 app 做壳, 或者是 CEF 壳, 直接在本地保存数据,通过文件交互搜索,起码内存不会爆,如果是 10 条新闻数据, 内存都不够读完的。
    dorothyREN
        9
    dorothyREN  
       Dec 22, 2020
    你这 万一哪个客户端机器 1G 内存不就直接爆了嘛
    iceneet
        10
    iceneet  
       Dec 22, 2020
    这种还是后端做吧 前端处理大概率会遇到客户端内存直接爆了的情况
    zszhere
        11
    zszhere  
       Dec 22, 2020 via iPhone
    楼主是内存厂家派来卧底的么 都这么干内存价格就拉上来了
    liuzhaowei55
        12
    liuzhaowei55  
       Dec 22, 2020 via Android
    我怀疑你和客户的采购有一手。
    echowuhao
        13
    echowuhao  
       Dec 22, 2020
    https://en.wikipedia.org/wiki/Wirth%27s_law

    Wirth's law is an adage on computer performance which states that software is getting slower more rapidly than hardware is becoming faster.

    硬件越好,软件越慢。活生生的例子。
    maocat
        14
    maocat  
       Dec 22, 2020
    1,分段搜索,2000 个分一组,利用 js 的异步特性
    2,不用全跑玩,比如第一页,分到 20 个就直接结束(缺点是页码还是要计算,越精确搜索可能越慢)
    gzf6
        15
    gzf6  
       Dec 22, 2020
    试试 SQLite
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   2782 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 55ms · UTC 11:32 · PVG 19:32 · LAX 04:32 · JFK 07:32
    ♥ Do have faith in what you're doing.