前端缓存数据一般是缓存多久???

一个商城的系统 接口有缓存,但是在app不可能每次切换页面的时候都从新加载数据吧,

比如 Banner图 文章列表,

现在的做法是将获取到的 Banner数据 存到nedb 或者 localstorage 之中 在存储的时候加入存储时间;

在每次切换请求之前判断本地缓存中是否有 Banner数据 要是将 现在的时间 - 存储的时间 如果这个时间 大于 2 小时重新从接口加载新的数据再写入到本地缓存中,否则就直接使用该数据;
这个效率是要比从接口缓存中从新获取要快很多的,,,但是这样的做法可行吗? 还是说有什么更好的办法没? 望大神不吝赐教!!

阅读 5.8k
5 个回答

第一:切换页面你需要实时更新商城的商品吗?如果需要,实时请求是没有问题的。
第二:假如你只是为了做切换页面不更新数据可以使用keepalive来做部分需要缓存的页面在切换时不在进行接口的请求。
第三:如果你按照自己上述的想法来做,具体时间需要配合产品的需求来做也是可以的。但是,不建议这么做。缓存是可以放置一些东西,但个人感觉还是不要什么东西都往缓存里面放,尤其是这种数据

对于大部分应用,最简单的做法是不用localstorage,直接保留在内存里,下次刷新页面时丢掉,从后台重加载就可以了,但是对于重要的数据,要给用户刷新的手段,比如文章,可以给一个下拉刷新,不重要的数据就无所谓了。 一家之言,供参考。

接口完全没有必要缓存,接口慢难道不应该是优化接口吗?要前端做缓存都是没有优化到点子上。

localstorage是永久存储,即只要你不调用localstorage.clear()方法,或者用户使用浏览器的清理功能,数据就会一直在那里。当然localstorage是域名隔离的,即其他域名下的方法是查看不了你的localstorage数据的。所以如果不想多次调用接口数据的话,是可以存储在localstorage中的。如果希望用户关闭页面就清空数据的话,可以考虑sessionstorage。

其实最主要的是看这个业务数据是否需要很及时的更新

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题