Skip to content

本地缓存优化方案

缓存策略对比

方式同步方法异步方法适用场景
本地存储setStorageSync/getStorageSyncsetStorage/getStorage小数据、简单键值对
本地数据库-plus.sqlite (App端)结构化数据、大量数据

缓存封装示例

javascript
// storage.js
export const Storage = {
    // 设置缓存(带过期时间)
    set(key, value, expire = 0) {
        const data = {
            value,
            expire: expire ? Date.now() + expire * 1000 : 0
        }
        uni.setStorageSync(key, data)
    },

    // 获取缓存
    get(key) {
        const data = uni.getStorageSync(key)
        if (!data) return null

        // 处理过期
        if (data.expire && Date.now() > data.expire) {
            this.remove(key)
            return null
        }

        return data.value
    },

    remove(key) {
        uni.removeStorageSync(key)
    },

    clear() {
        uni.clearStorageSync()
    }
}

尘埃虽微,积之成集;问题虽小,记之为鉴。 雾中低语,心之所向;思绪飘渺,皆可成章。