小程序 内存缓存
2018-01-11 10:30
162 查看
项目背景和上一篇博客一样。
是一个和业务逻辑相关的问题了,就是我做页面路由(确定跳转到哪个page)要从后台拉数据,但是同样的接口在页面里面也会用到,为了更好的利用这一些数据,我在HTTP请求那里做了一点缓存。
js代码是这样写的
只拦截GET网络请求,所以网络部分是这样封装的:
ps:net 里面会处理很多我们这边的错误码,代码细节就不放上来了。
定义了缓存的有效时间,简单有效的满足了背景需求。用的时候,就是
是一个和业务逻辑相关的问题了,就是我做页面路由(确定跳转到哪个page)要从后台拉数据,但是同样的接口在页面里面也会用到,为了更好的利用这一些数据,我在HTTP请求那里做了一点缓存。
js代码是这样写的
var data ={}; var memory=function() { function push(key, value) { data[key] = { time: utils.now(), data: value } } function pop(key) { var obj = data[key]; if (obj){ delete cache[key]; if (utils.now() - obj.time < 3)return obj.data; } return null; } function invalid(){ data = {}; } return { push: push, pop: pop, invalid: invalid, all: function () { return data; } } } module.exports = memory
只拦截GET网络请求,所以网络部分是这样封装的:
function GET(options) { //TODO 缓存键值需要优化 var memory = cache.memory(); if (options && options.url) { if (options.cache) { //拦截成功回调 var originSuccess = options.success; if (originSuccess) { options.success = (resp) => { memory.push(options.url, resp); originSuccess(resp); } } } else { //命中缓存 var target = memory.pop(options.url); if (target && options.success) options.success(target); if (target) return; } } net(options, 'GET') }
ps:net 里面会处理很多我们这边的错误码,代码细节就不放上来了。
定义了缓存的有效时间,简单有效的满足了背景需求。用的时候,就是
options.cache=true
相关文章推荐
- 用Memcache守护程序把数据缓存到内存七(完)
- 缓存与程序内存分布
- 程序使用内存缓存(MemoryCache)
- 内存管理(SAP和ABAP内存)缓存设定以及程序memory管理等
- android图片的缓存--节约内存提高程序效率
- 为程序使用内存缓存(MemoryCache)
- 用 Memcache 守护程序把数据缓存到内存中
- PHP应用系列之三:用Memcache守护程序把数据缓存到内存中
- php内存缓存实现程序代码
- 为 PHP 应用提速、提速、再提速!,第 3 部分: 用 Memcache 守护程序把数据缓存到内存中
- 基础知识之php内存缓存实现程序代码
- 用Memcache守护程序把数据缓存到内存一
- 验证Glide图片异步缓存,再次打开程序优先从内存/磁盘中加载图片
- 用Memcache守护程序把数据缓存到内存三
- 用Memcache守护程序把数据缓存到内存四
- 用Memcache守护程序把数据缓存到内存五
- [转]为 PHP 应用提速、提速、再提速!,第 3 部分: 用 Memcache 守护程序把数据缓存到内存中
- 为程序使用内存缓存(MemoryCache)
- [转]为 PHP 应用提速、提速、再提速!,第 3 部分: 用 Memcache 守护程序把数据缓存到内存中
- 用Memcache守护程序把数据缓存到内存六