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

简介: 将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

相关文章
|
11月前
|
缓存 监控 Linux
Linux系统清理缓存(buff/cache)的有效方法。
总结而言,在大多数情形下你不必担心Linux中buffer与cache占用过多内存在影响到其他程序运行;因为当程序请求更多内存在没有足够可用资源时,Linux会自行调整其占有量。只有当你明确知道当前环境与需求并希望立即回收这部分资源给即将运行重负载任务之前才考虑上述方法去主动干预。
2563 10
|
11月前
|
缓存 监控 Ubuntu
Ubuntu操作系统下清除系统缓存与无用文件的方法
通过上述步骤断行综合性地对Ubuntu进行优化与整洁可显著改善其性能表现及响应速度。然而,请注意在执行某些操作前确保充分了解其潜在影响;例如,在移除旧内核之前确认新内核稳定运行无问题;而对于关键配置更改则需确保备份好相关设置以便恢复原状态。
2615 0
|
小程序
小程序消除图片下边距的三个方法
小程序消除图片下边距的三个方法
579 167
|
数据安全/隐私保护
陌陌头像留V的最好方法,陌陌最新留QQ号技巧,陌陌动态最聪明的留微信
本资料分享社交平台隐秘留联系方式的方法,包含微信头像艺术化处理、二维码变形术,以及QQ号谐音替换、图片分割等技巧。
|
缓存 NoSQL Java
springboot怎么使用rides缓存方法的返回值 完整例子
通过上述步骤,我们成功地在 Spring Boot 项目中集成了 Redis 缓存,并通过注解的方式实现了方法返回值的缓存。这种方式不仅提高了系统的性能,还简化了缓存管理的复杂度。使用 Spring Boot 的缓存注解和 Redis,可以轻松地实现高效、可靠的缓存机制。
412 23
|
Web App开发 移动开发 小程序
公众号小程序H5网页像素流送UE5模型的方法分享
本文探讨了如何通过像素流送技术在小程序、公众号等平台展示复杂的3D模型(如UE5引擎开发的楼盘模型、数字孪生展厅)。该技术将GPU和CPU算力需求转移到服务器端,使用户侧无需高性能硬件即可流畅体验。通过Webrtc实现实时云渲染,确保毫秒级响应,且兼容多种浏览器。使用点量云流等产品级软件,老项目只需重新打包为EXE格式,即可轻松嵌入H5网页、小程序或公众号中,支持Unity、WebGL等多种3D应用及传统CAD模型。
550 1
|
缓存 Java Shell
Android 系统缓存扫描与清理方法分析
Android 系统缓存从原理探索到实现。
1040 15
Android 系统缓存扫描与清理方法分析
|
存储 缓存 小程序
微信小程序数据缓存与本地存储:优化用户体验
本文深入探讨微信小程序的数据缓存与本地存储,介绍其意义、机制及应用场景。通过合理使用内存和本地缓存,可减少网络请求、提升加载速度和用户体验。文中详细讲解了常用缓存API的使用方法,并通过一个新闻列表案例展示了缓存的实际应用。最后提醒开发者注意缓存大小限制、时效性和清理,以确保最佳性能。
|
存储 缓存 监控
利用 Redis 缓存特性避免缓存穿透的策略与方法
【10月更文挑战第23天】通过以上对利用 Redis 缓存特性避免缓存穿透的详细阐述,我们对这一策略有了更深入的理解。在实际应用中,我们需要根据具体情况灵活运用这些方法,并结合其他技术手段,共同保障系统的稳定和高效运行。同时,要不断关注 Redis 缓存特性的发展和变化,及时调整策略,以应对不断出现的新挑战。
295 10