i***@outlook.com
i***@outlook.com
  • 发布:2018-09-04 19:21
  • 更新:2019-06-15 10:40
  • 阅读:9867

uniapp:写了一个缓存 uni.request 的类,分享一下!

分类:uni-app

因为不是每个request都需要去服务器拿。缓存一下,有助于提高性能。

直接替换uni.request(params) 到 Utils.cashRequest(duration, params)就行了。

Utils.cacheRequest(3600,{  
                    url: "your-web-service-url",  
                    success: function (resp) {  
                        uni.stopPullDownRefresh();  
                    }.bind(this)  
                })
export default class Utils {      
    static cacheRequest(cacheDruation=3600, params) {  
        var key = JSON.stringify({url:params.url,data:params.data});  
        var cache = uni.getStorageSync(key);  
        var now = (new Date()).getTime() / 1000;  
        var success = params.success;  

        if (cache && cache.time + cacheDruation > now) {  
            success(cache.resp);  
            return;  
        }  

        params.success = function (resp) {  
            success(resp);  
            uni.setStorageSync(key, {  
                time: now,  
                resp: resp  
            });  
        }.bind(this);  
        uni.request(params);  
    }  
}
6 关注 分享
Trust DCloud_heavensoft 3***@qq.com 湖东呀 t***@163.com l***@dingtalk.com

要回复文章请先登录注册

海浪浪

海浪浪

我没demo过,大致看了下,这个是根据时间(cacheDruation)缓存的吗? 一个小时更新一次数据吗? 这样写会不会不太灵活?
2019-06-15 10:40
t***@163.com

t***@163.com

具体怎么用啊,怎么引用?
2019-02-25 19:38
2***@qq.com

2***@qq.com

大哥怎么用怎么替换 详细被。 不会弄啊
2018-12-06 09:58
凌云阁

凌云阁

你的有没有出现跨域错误提示?
2018-09-21 18:05
3***@qq.com

3***@qq.com

6666
2018-09-05 11:11