当前位置:首页 > JavaScript

js缓存实现

2026-03-14 20:13:18JavaScript

缓存实现方法

使用 localStorage 或 sessionStorage

localStorage 和 sessionStorage 是浏览器提供的 Web Storage API,适合存储键值对数据。localStorage 数据持久化,sessionStorage 数据仅在会话期间有效。

// 存储数据
localStorage.setItem('key', 'value');

// 获取数据
const value = localStorage.getItem('key');

// 删除数据
localStorage.removeItem('key');

使用 Cache API

Cache API 是 Service Worker 的一部分,适合缓存网络请求和响应,常用于 PWA 应用。

// 打开缓存
caches.open('cache-name').then(cache => {
  // 添加缓存
  cache.add('/api/data');

  // 匹配缓存
  cache.match('/api/data').then(response => {
    if (response) {
      // 使用缓存数据
    }
  });
});

使用 IndexedDB

IndexedDB 是一个事务型数据库系统,适合存储大量结构化数据。

// 打开数据库
const request = indexedDB.open('db-name', 1);

request.onupgradeneeded = (event) => {
  const db = event.target.result;
  db.createObjectStore('store-name', { keyPath: 'id' });
};

request.onsuccess = (event) => {
  const db = event.target.result;
  const transaction = db.transaction('store-name', 'readwrite');
  const store = transaction.objectStore('store-name');

  // 添加数据
  store.add({ id: 1, data: 'value' });

  // 获取数据
  store.get(1).onsuccess = (event) => {
    const data = event.target.result;
  };
};

使用内存缓存

内存缓存适合临时存储数据,生命周期与页面一致。

const cache = {};

// 存储数据
cache['key'] = 'value';

// 获取数据
const value = cache['key'];

// 删除数据
delete cache['key'];

使用第三方库

一些第三方库如 lru-cache 提供了更高级的缓存功能,例如 LRU(最近最少使用)策略。

const LRU = require('lru-cache');
const cache = new LRU({ max: 500 });

// 存储数据
cache.set('key', 'value');

// 获取数据
const value = cache.get('key');

// 删除数据
cache.del('key');

缓存策略选择

根据应用场景选择合适的缓存策略:

js缓存实现

  • 小量数据:localStorage 或 sessionStorage
  • 大量结构化数据:IndexedDB
  • 网络请求缓存:Cache API
  • 临时数据:内存缓存
  • 高级缓存需求:第三方库如 lru-cache

标签: 缓存js
分享给朋友:

相关文章

vue怎么实现组件缓存

vue怎么实现组件缓存

vue实现组件缓存的方法 在Vue中实现组件缓存可以通过内置的<keep-alive>组件完成,该组件能够缓存不活动的组件实例,避免重复渲染。 使用<keep-alive>基…

js实现轮播

js实现轮播

实现轮播图的基本思路 轮播图的核心逻辑是通过定时切换展示的图片或内容,通常结合左右滑动按钮和指示器(小圆点)增强交互性。以下是基于原生JavaScript的实现方法。 HTML结构 构建轮播图的HT…

节流js实现

节流js实现

节流(Throttle)的实现原理 节流是一种限制函数执行频率的技术,确保函数在一定时间间隔内最多执行一次。适用于高频触发事件(如滚动、输入、窗口调整等)的场景。 基础实现方式 使用时间戳判断是否执…

js实现路由

js实现路由

js实现路由的方法 在JavaScript中实现路由功能可以通过多种方式完成,以下是几种常见的方法: 使用原生JavaScript实现路由 通过监听window.onhashchange事件来实现基…

js图片轮播的实现

js图片轮播的实现

基础图片轮播实现 使用HTML、CSS和JavaScript实现一个简单的图片轮播效果。HTML部分定义轮播容器和图片,CSS负责样式和过渡效果,JavaScript处理逻辑。 <div cl…

js实现复制功能实现

js实现复制功能实现

使用document.execCommand方法(传统方式,已逐渐被弃用) 传统方式通过document.execCommand('copy')实现复制功能,需先选中文本。以下是一个完整示例: fu…