localCache && localStorage

某次开发碰到使用本地缓存二级缓存,为了以后学习,还是记下来为好。

		/**
	 * 从本地缓存中获取缓存数据
	 * @param cacheKey 缓存数据的KEY
	 * @return Object对象,请自行转换类型
	 */
	public Object get(String cacheKey) {
		HashMap<String,Object> cacheMap = localCache.get(cacheKey);
		if ( cacheMap != null ) {
			long currentTime = System.currentTimeMillis();
			if(currentTime < (Long)cacheMap.get(CACHETIME)){
				//将数据移至队列尾部
				queue.remove(cacheKey);
				queue.offer(cacheKey);
				return cacheMap.get(CACHEVALUE);
			}
		} 
		return null;
	}
	
	/**
	 * 将数据缓存至本地缓存
	 * @param cacheKey 缓存数据的KEY
	 * @param cacheValue 缓存数据
	 * @param intervalTime 缓存有效期Long类型
	 */
	public Object put(String cacheKey,Object cacheValue,long intervalTime){
		//缓存数据
		HashMap<String,Object> cacheMap = new HashMap<String,Object>();
		long nowTime = System.currentTimeMillis();
		long expireTime = nowTime + intervalTime;
		cacheMap.put(CACHETIME,expireTime);
		cacheMap.put(CACHEVALUE, cacheValue);
		//将数据移至队列尾部
		queue.remove(cacheKey);
		queue.offer(cacheKey);
		return localCache.put(cacheKey, cacheMap);
	}
	
	/**
	 * 延长有效期时间
	 * @param cacheKey 缓存数据的KEY
	 * @param intervalTime 缓存有效期Long类型
	 */
	public void expire(String cacheKey,long intervalTime){
		long nowTime = System.currentTimeMillis();
		long expireTime = nowTime + intervalTime;
		HashMap<String,Object> cacheMap = localCache.get(cacheKey);
		if(cacheMap==null){
			return;
		}
		cacheMap.put(CACHETIME,expireTime);
	}
	
	/**
	 * 移除本地缓存数据
	 * @param cacheKey 缓存数据的KEY
	 */
	public Object remove(String cacheKey){
		queue.remove(cacheKey);
		return localCache.remove(cacheKey);
	}

浏览器的缓存 

localStorage=window.localStorage
获取缓存 
localStorage.getItem(key);
删除缓存
localStorage.removeItem(key);
放置缓存
localStorage.setItem(key, +new Date() + 24 * 60 * 60 * 60 * 1000);

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
`$store.state` 是 Vuex 中存储数据的地方,可以看作是一个全局的状态管理器,它可以存储应用程序的所有状态,而且所有组件都可以访问和修改它。 `sessionStorage` 和 `localStorage` 是浏览器提供的 Web 存储机制,用于在浏览器中存储数据。它们的区别在于数据的生命周期不同,`sessionStorage` 存储的数据在浏览器会话期间有效,当用户关闭浏览器窗口后,数据就会失效;而 `localStorage` 存储的数据则会一直存在,即使用户关闭浏览器窗口,数据也不会丢失,除非用户手动清除。 因此,`$store.state` 和 `sessionStorage`&`localStorage` 的区别在于: 1. `$store.state` 存储的数据是全局的,可以在整个应用程序中访问和修改,而 `sessionStorage`&`localStorage` 存储的数据只能在当前浏览器窗口中访问和修改。 2. `$store.state` 存储的数据是在内存中存储的,应用程序重新加载后数据会丢失,而 `sessionStorage` 存储的数据在浏览器会话期间有效,`localStorage` 存储的数据则会一直存在。 3. `$store.state` 存储的数据可以在应用程序中进行响应式处理,而 `sessionStorage`&`localStorage` 存储的数据不支持响应式处理。 因此,在实际开发中,我们需要根据具体的需求选择合适的存储方式。如果需要在整个应用程序中共享数据,并且数据需要支持响应式处理,那么就应该选择 `$store.state`;如果需要在浏览器窗口中存储数据,并且数据需要在浏览器会话期间有效,那么就应该选择 `sessionStorage`;如果需要在浏览器中长期存储数据,那么就应该选择 `localStorage`。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值