在开发 web 应用程序时,性能都是必不可少的话题。
事实上,缓存一定是提升 web 应用程序有效方法之一,尤其是用户受限于网速的情况下。提升系统的响应能力,降低网络的消耗。当然,内容越接近于用户,则缓存的速度就会越快,缓存的有效性则会越高。
当然,缓存一定建立在对数据的时效性要求低的情况下,往往在 ToB 场景下更加有效 (系统数据,个人信息和通用数据与配置)。
两年前,我写过一篇关于缓存的文章前端 api 请求缓存方案 中详细介绍了如何使用 promise 进行缓存,参数化存储以及缓存超时的一些机制。
不过,相对于完整的 memoizee 缓存库我的代码就显得捉襟见肘了,因为 memoizee 无侵入性。
下面我们来学习一下该库:
普通的使用方式:
适合 Promise, 与普通的方式不同,针对于 Promise 发送异常,则会把结果从缓存中删除。
类似于之前的代码:
也包括我之前写的基于时间缓存(拉模型,在每次取数据的时候检测当前时间和存储时间):
当然,配置如下所示: