// localStorage封装
export const localStorageUtil = {
  /**
   * @param key
   * @param data
   * @param time 失效时间(秒),默认一天
   * @returns {boolean}
   */
  set: function(key, data, time) {
    try {
      if (!localStorage) {
        return false
      }
      if (!time || isNaN(time)) {
        time = 60 * 60 * 24
      }
      var cacheExpireDate = new Date() - 1 + time * 1000
      var cacheVal = {
        val: data,
        exp: cacheExpireDate
      }
      localStorage.setItem(key, JSON.stringify(cacheVal)) // 存入缓存值
    } catch (e) {
      console.log(e)
    }
  },
  get: function(key) {
    try {
      if (!localStorage) {
        return false
      }
      var cacheVal = localStorage.getItem(key)
      var result = JSON.parse(cacheVal)
      var now = new Date() - 1
      // 缓存不存在
      if (!result) {
        return null
      }
      // 缓存过期
      if (now > result.exp) {
        this.remove(key)
        return ''
      }
      return result.val
    } catch (e) {
      this.remove(key)
      return null
    }
  },
  remove: function(key) {
    if (!localStorage) {
      return false
    }
    if (key) {
      localStorage.removeItem(key)
    } else {
      localStorage.clear()
    }
  }
}

// sessionStorage封装
export const sessionStorageUtil = {
  /**
   * @param key
   * @param data
   * @param time 失效时间(秒),默认一天
   * @returns {boolean}
   */
  set: function(key, data, time) {
    try {
      if (!sessionStorage) {
        return false
      }
      if (!time || isNaN(time)) {
        time = 60 * 60 * 24
      }
      var cacheExpireDate = new Date() - 1 + time * 1000
      var cacheVal = {
        val: data,
        exp: cacheExpireDate
      }
      sessionStorage.setItem(key, JSON.stringify(cacheVal)) // 存入缓存值
    } catch (e) {
      console.log(e)
    }
  },
  get: function(key) {
    try {
      if (!sessionStorage) {
        return false
      }
      var cacheVal = sessionStorage.getItem(key)
      var result = JSON.parse(cacheVal)
      var now = new Date() - 1
      // 缓存不存在
      if (!result) {
        return null
      }
      // 缓存过期
      if (now > result.exp) {
        this.remove(key)
        return ''
      }
      return result.val
    } catch (e) {
      this.remove(key)
      return null
    }
  },
  remove: function(key) {
    if (!sessionStorage) {
      return false
    }
    if (key) {
      sessionStorage.removeItem(key)
    } else {
      sessionStorage.clear()
    }
  }
}

使用:

localStorageUtil.set('evaluations-report-path', this.url)
localStorageUtil.get('evaluations-report-id')
localStorageUtil.remove('evaluations-report-id')
Logo

欢迎加入 MCP 技术社区!与志同道合者携手前行,一同解锁 MCP 技术的无限可能!

更多推荐