【微信小程序】缓存数据库操作类——prototype和ES6方法

本文涉及的产品
Redis 开源版,标准版 2GB
推荐场景:
搭建游戏排行榜
云数据库 Tair(兼容Redis),内存型 2GB
简介: 将post数据在缓存数据库中的key,postList赋值给构造函数的this变量。这个postList必须和初始化数据库时设置的文章数据的key相同,否则无法读取数据。

6cf06dc1d8f24ff3aee05d143db63086.gif


🏆今日学习目标:第十六期——缓存数据库操作类

😃创作者:颜颜yan_

✨个人主页:颜颜yan_的个人主页

⏰预计时间:25分钟

🎉专栏系列:我的第一个微信小程序


前言


哈喽大家好,本期是微信小程序专栏第十六期。本期主要内容是构建一个访问缓存数据库的访问“类”,主要有prototype和ES6两种方法。


每期内容是连载呢,建议大家可以看看往期内容,更好理解噢~


编写缓存数据库操作类(prototype)


在项目根目录下新建database文件夹,并新建DBPost.js文件。


a02a4c9bc05741b59b1748bc4db02d2b.png


思路


1.定义一个DBPost构造函数。


2.将post数据在缓存数据库中的key,postList赋值给构造函数的this变量。这个postList必须和初始化数据库时设置的文章数据的key相同,否则无法读取数据。


3.添加对象,这个对象的所有属性和方法都会被构造函数的实例继承。


4.在getAllPostData中添加判断,如果换成不存在将重新加载data.js数据文件并存入到缓存数据库中。


5.使用module.exports将DBPost输出。


// 定义构造函数
var DBPost=function(){
    // 所有的文章本地缓存存储数值
    this.storageKeyName='postList';
}
DBPost.prototype={
    getAllPostData:function(){
        var res=wx.getStorageSync(this.storageKeyName);
        // 如果缓存不存在,将重新加载data.js数据文件并存入到缓存数据库
        if(!res){
            res=require('../data/data.js').postList;
            this.execSetStorage(res);
        }
        return res;
    },
    execSetStorageSync:function(data){
        wx.setStorageSync(this.storageKeyName, data);
    }
}
// 输出DBPost
module.exports={
    DBPost:DBPost
};


使用缓存数据库操作类


思路


  1. 更改post.js中的代码,定义一个变量DBPost加载data.js文件,通过操作DB操作类所在的模块文件来操作文章数据。
  2. 使用“new”将DBPost实例化。
  3. 调用该对象的getAllPostData方法,读取所有文章的缓存数据并绑定到postList中。


b0a6edf9c731485c93034b220b4b8b38.png


ES6改写缓存操作类


接下来,我们用ES6的新特性Class、Module来改写缓存操作类。


DBPost.js


同prototype的实现方法相比,ES6的写法更符合现代语言的类的标准定义习惯。


// ES6语法
class DBPost{
    constructor(url){
        this.storageKeyName = 'postList';
    }
    // 得到全部文章信息
    getAllPostData(){
                var res=wx.getStorageSync(this.storageKeyName);
                // 如果缓存不存在,将重新加载data.js数据文件并存入到缓存数据库
                if(!res){
                    res=require('../data/data.js').postList;
                    this.execSetStorage(res);
                }
                return res;
            }
    // 保存、更新缓存数据
    execSetStorageSync(data){
                wx.setStorageSync(this.storageKeyName, data);
            }
};
export{DBPost}


post.js


这里使用ES6导入模块的关键字import将DBPost导入进来,这种写法的可读性要比require要高的多。


75488036246447009eef1fb8f36be336.png


通过以上两种不同的写法,可以看到ES6提供的Class模板让JavaScript的面向对象变成更加清晰,更符合现代面向对象写法。但Class仅仅是一个语法糖,不使用ES6一样可以实现面向对象的编写方法。


总结


以上就是今天的学习内容啦~

如果有兴趣的话可以订阅专栏,持续更新呢~

咱们下期再见~


8e117120f2f0495a83c3f0c72f49db63.gif

相关实践学习
基于Redis实现在线游戏积分排行榜
本场景将介绍如何基于Redis数据库实现在线游戏中的游戏玩家积分排行榜功能。
云数据库 Redis 版使用教程
云数据库Redis版是兼容Redis协议标准的、提供持久化的内存数据库服务,基于高可靠双机热备架构及可无缝扩展的集群架构,满足高读写性能场景及容量需弹性变配的业务需求。 产品详情:https://www.aliyun.com/product/kvstore     ------------------------------------------------------------------------- 阿里云数据库体验:数据库上云实战 开发者云会免费提供一台带自建MySQL的源数据库 ECS 实例和一台目标数据库 RDS实例。跟着指引,您可以一步步实现将ECS自建数据库迁移到目标数据库RDS。 点击下方链接,领取免费ECS&RDS资源,30分钟完成数据库上云实战!https://developer.aliyun.com/adc/scenario/51eefbd1894e42f6bb9acacadd3f9121?spm=a2c6h.13788135.J_3257954370.9.4ba85f24utseFl
相关文章
|
2月前
|
数据采集 数据库 Python
有哪些方法可以验证用户输入数据的格式是否符合数据库的要求?
有哪些方法可以验证用户输入数据的格式是否符合数据库的要求?
158 75
|
4月前
|
存储 监控 安全
数据库多实例的部署与配置方法
【10月更文挑战第23天】数据库多实例的部署和配置需要综合考虑多个因素,包括硬件资源、软件设置、性能优化、安全保障等。通过合理的部署和配置,可以充分发挥多实例的优势,提高数据库系统的运行效率和可靠性。在实际操作中,要不断总结经验,根据实际情况进行调整和优化,以适应不断变化的业务需求。
|
19天前
|
存储 缓存 Java
java语言后台管理ruoyi后台管理框架-登录提示“无效的会话,或者会话已过期,请重新登录。”-扩展知识数据库中密码加密的方法-问题如何解决-以及如何重置若依后台管理框架admin密码-优雅草卓伊凡
java语言后台管理ruoyi后台管理框架-登录提示“无效的会话,或者会话已过期,请重新登录。”-扩展知识数据库中密码加密的方法-问题如何解决-以及如何重置若依后台管理框架admin密码-优雅草卓伊凡
70 3
java语言后台管理ruoyi后台管理框架-登录提示“无效的会话,或者会话已过期,请重新登录。”-扩展知识数据库中密码加密的方法-问题如何解决-以及如何重置若依后台管理框架admin密码-优雅草卓伊凡
|
5天前
|
数据库
【YashanDB 知识库】数据库一主一备部署及一主两备部署时,主备手动切换方法及自动切换配置
**数据库主备切换简介** 在数据库正常或异常情况下,实现主备切换至关重要。若配置不当,主节点故障将影响业务使用,尤其在23.2版本中。原因包括资源紧张或主节点异常。解决方法涵盖手动和自动切换: 1. **一主一备部署**: - **手动切换**:支持Switchover(同步正常时)和Failover(主库损坏时)。 - **自动切换**:启用yasom仲裁选主开关。 2. **一主两备部署**: - 默认最大保护模式,自动切换开启。 需检查并配置自动切换以确保高可用性。经验总结:一主一备默认关闭自动切换,需手动开启;一主两备默认开启。
|
4天前
|
存储 缓存 小程序
微信小程序数据缓存与本地存储:优化用户体验
本文深入探讨微信小程序的数据缓存与本地存储,介绍其意义、机制及应用场景。通过合理使用内存和本地缓存,可减少网络请求、提升加载速度和用户体验。文中详细讲解了常用缓存API的使用方法,并通过一个新闻列表案例展示了缓存的实际应用。最后提醒开发者注意缓存大小限制、时效性和清理,以确保最佳性能。
|
4月前
|
SQL 存储 BI
gbase 8a 数据库 SQL合并类优化——不同数据统计周期合并为一条SQL语句
gbase 8a 数据库 SQL合并类优化——不同数据统计周期合并为一条SQL语句
|
4月前
|
SQL Oracle 关系型数据库
Oracle数据库优化方法
【10月更文挑战第25天】Oracle数据库优化方法
83 7
|
5月前
|
SQL 存储 监控
串口调试助手连接SQL数据库的技巧与方法
串口调试助手是电子工程师和软件开发人员常用的工具,它能够帮助用户进行串口通信的调试和数据分析
|
5月前
|
JSON 小程序 JavaScript
uni-app开发微信小程序的报错[渲染层错误]排查及解决
uni-app开发微信小程序的报错[渲染层错误]排查及解决
1026 7
|
5月前
|
小程序 JavaScript 前端开发
uni-app开发微信小程序:四大解决方案,轻松应对主包与vendor.js过大打包难题
uni-app开发微信小程序:四大解决方案,轻松应对主包与vendor.js过大打包难题
959 1