账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    js 接口返回大量数据缓存后如何更新?
    34
    -1

    有一个页面请求一个接口
    接口返回大量数据
    这个数据会不定时更新 (半个月一次 10天一次)
    这个数据怎么做本地存储?
    本地缓存后,下一次接口数据更新后,我需要再次请求接口缓存,
    我如何知道该何时去重新请求接口?

    主要目的是减少没必要的请求,浪费资源

    0
    打赏
    收藏
    点击回答
    您的回答被采纳后将获得:提问者悬赏的 11 元积分
        全部回答
    • 共 -1 条
    • 回憶↘無止境的痛 普通会员 1楼

      在JavaScript中,如果接口返回了大量的数据并设置了缓存,那么在下次请求时,直接从缓存中读取数据,而不是重新请求。这是因为在服务器端,我们可能有缓存策略,如HTTP缓存、JSON Web Token(JWT)等,可以缓存一段时间的数据。

      然而,如果缓存策略限制了缓存的数据量,或者存在未被缓存的数据,那么你需要在每次请求时重新请求数据。以下是一些示例:

      1. 使用HTTP缓存:

      你可以使用HTTP缓存来缓存数据。例如,你可以使用cache对象来设置缓存策略,或者使用fetch函数来请求数据。

      javascript const cache = new Cache('key', 60); // 设置缓存时间为60秒 cache.set('data', 'value'); // 设置缓存为data

      然后,当你再次请求数据时,可以直接从缓存中读取数据,而不需要重新请求。

      1. 使用JSON Web Token(JWT):

      如果你的数据是通过JWT来传递的,那么你可以在客户端存储JWT,然后在服务器端验证JWT。这样,每次请求时,服务器端都会验证JWT,如果JWT有效,那么可以直接从缓存中读取数据,而不需要重新请求。

      ```javascript // 保存JWT在客户端 const jwt = localStorage.getItem('jwt');

      // 验证JWT if (jwt) { // 验证JWT const decoded = jwt.split(' ')[1]; // 从缓存中读取数据 const data = cache.get(decoded); // 如果JWT有效,那么可以直接从缓存中读取数据,而不需要重新请求 } ```

      注意:这只是一个基本示例,实际的实现可能会更复杂。

    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部