Skip to content

tianxiangbing/cache-center

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 

Repository files navigation

CacheCenter

针对本地缓存进行集中处理,针对前端的缓存进行预处理,缓存位置为内存变量,组件或页面内使用时,可以指定暂存localStorage

一、背景

目前项目中大量使用缓存,导致首次进入时需要请求很多个参数,而且随着项目的业务增加越来越多,等待时间过长,直接影响用户体验,浪费不必要的流量。而且浏览器对本地localStorage有大小限制,会导致异常错误。所以针对上述问题,需要对此进行优化。

二、优化方案设计

  1. 主界面不直接请求缓存,由使用到的子页面模块自己确定要使用哪些缓存。
  2. 建立统一的缓存中心,子模块打开时,去缓存中心取对应的缓存,没有时loading,并请求对应的缓存。

三、旧版本兼容处理

  1. 旧版本的所有页面需要改成模板的模式加载,在加载前去缓存中心取该页面所有需要的缓存,由缓存中心处理是否需要请求,并暂存localStorage

四、缓存中心

  1. 统一处理存放缓存在主进程中,由配置项来确定是使用localStorage还是内存变量,
  2. 预加载loading效果,需要传递使用缓存的容器.
  3. 订阅缓存title,更新缓存,并发送消息到使用缓存的模块处理。(这个由后台来确认是否可以进行单条更新)
  4. 取值时返回promise对象,处理异步缓存问题,同时多个模块用到同一个缓存时,只请求第一个缓存,统一返回结果.

六、缓存更新机制

  1. 主动更新:第一次主动请求,模块获取
  2. 被动更新:收到后台的参数更新推送
  3. 事件通知:缓存信息更新时,发送事件到对应模块,看是否需要对该缓存的变化进行对应处理,如下拉框的值是否需要自动更新,否则需要等下次打开模块时获取最新值。

About

缓存处理中心

Resources

Stars

Watchers

Forks

Packages

No packages published