表格数据前端做缓存

如果你想要对表格做一个缓存处理,不想每次切换tab或者切换页面都重新获取数据,那你可以看看本篇文章,应该会为你提供一个新的思路

一、目标:

        常见的表格数据,有多个tabs标签页,每页下面有n个分页。如下图:

本文以element中的表格示例

二、构思

  1.  首先要有一个标识当前标签页的 tabType 变量、记录表格数据的tableData、标识当前页码的 page
  2.  使用sessionStorage将数据存储到本地(做这种数据缓存使用sessionStorage比较合适)
  3.  存储数据的时机:获取新的数据之后
  4.  清除数据的时机:操作完成之后需要更新数据时。或者更改搜索条件的时候

三、具体实现

1、定义变量(自己手动定义即可)

2、 数据存储

 第一步:在获取数据的方法中接受一个参数,用来标识需不需要清空数据(如果是操作完成需要刷新数据就传这个参数,如果是简单的切换tabs标签页就不需要传)

getTableFn(data){
    //1. 第一步 读取数据
    // 读取缓存中的数据
    let cacheTab = JSON.parse(sessionStorage.getItem('orderManCTab'))||{}
    // 如果不需要刷新数据,就会从缓存中读取数据
    if (data != 'refresh'&&cacheTab&&cacheTab[this.tabType]&&cacheTab[this.tabType][this.page]) {
        this.$set(this, 'tableData', cacheTab[this.tabType][this.page]||[])
        return
    }else if(data == 'refresh'){
        // 如果需要重新获取数据,先将缓存中的数据清空
        sessionStorage.removeItem('orderManCTab')
    }
    ...
}

第二步:如果此时是第一次获取数据,或者需要重新获取数据,就调用相应接口获取数据,并将其存储到本地

async getTableFn(data){
    ...
    // 第二步 获取数据并存储
    const {status,body} = await getApi(...);
    if(status==200){
        this.$set(this, 'tableData', body.list||[])
        let cacheObj = {}
        let cacheTab = JSON.parse(sessionStorage.getItem('orderManCTab'))
        // 如果没有缓存的数据
        if(!cacheTab){
            cacheTab = {}
            cacheObj[this.tabType] = {}
            cacheObj[this.tabType][this.page] = body.list||[]
        }else{
            cacheTab[this.tabType] = cacheTab[this.tabType]||{}
            cacheTab[this.tabType][this.page] = body.list||[]
        }
        sessionStorage.setItem('orderManCTab',JSON.stringify(cacheTab||cacheObj))
    }else{
        ...
    }
}

如果发现任何错误、或有一些建议,欢迎在评论区留言。

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
JavaScript前端对于大量数据的展示方式和处理方法有很多种。 首先,对于数据的展示方式,常用的方法包括分页、滚动加载和虚拟滚动。分页是将数据分成多个页面进行展示,用户可以点击页码来切换页面查看数据。滚动加载是在页面滚动到底部时自动加载更多数据,实现无限滚动效果。虚拟滚动是仅渲染可见区域的数据,随着用户滚动页面,只渲染需要展示的数据,减少渲染时间和内存消耗。 其次,对于大量数据的处理方法,常用的方法包括数据分片和异步加载。数据分片是将大量数据分成小块进行处理,可以通过分页或者固定大小的数据块来实现。异步加载是指在请求数据时采用异步的方式,不阻塞页面加载和渲染,使得用户可以先看到页面的部分内容,然后再加载和展示数据。 另外,为了提高数据的展示性能,还可以使用数据缓存数据压缩等方法。数据缓存是将数据保存在内存或者本地存储中,减少网络请求,提高页面加载速度。数据压缩是将数据进行压缩,减少数据的大小,从而减少网络传输时间和减轻服务器负担。 最后,可以通过数据可视化技术将大量数据以图表、表格等方式呈现,提升用户对数据的理解和分析能力。常用的数据可视化库有Chart.js、ECharts等。 综上所述,JavaScript前端对于大量数据的展示方式和处理方法有多种选择,开发者可以根据具体需求选择适合的方法来展示和处理数据

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值