微信小程序 本地mysql_微信小程序系列之使用缓存在本地模拟服务器数据库

论坛 期权论坛 编程之家     
选择匿名的用户   2021-6-2 16:13   1062   0

微信小程序系列之使用缓存在本地模拟服务器数据库

现在将data.js这个文件视作是本地数据库的初始化数据,要做的第一件事就是讲这些初始化数据装进缓存中,以形成数据库的初始化数据

整个应用程序的生命周期,类比一下页面的生命周期,在页面的js文件中,我们使用Page(object)来注册页面,并在object中指定页面的生命周期函数,同样可以在app.js中使用App(object)来注册小程序,并在object中指定小程序的生命周期函数

onLaunch 监听小程序的初始化,当小程序初始化完成时,会触发onLaunch(全局只触发一次)

onShow 监听小程序的显示,当小程序启动或者从后台进入前台时,会触发onShow的事件

onHide 监听小程序的隐藏,当小程序从前台进入到后台时

onError 监听小程序的错误,发生错误时会触发onError

当然,还可以自己任意添加函数到Objectc参数中,用this可以访问这些函数和数据

最好的初始化数据是在应用程序启动时

在app.js中植入数据

var dataObj=require("data/data.js")

App({

onLaunch:function(){//初始化

key: 'postData',

data: 'dataObj.postList',//需要存储的内容

success:function(res){//缓存成功。调用

},

fail: function (res) {//缓存失败调用函数

},

complete: function (res) {//缓存完整,调用

},

})

}

})

在上面代码中,首先通过require加载data.js作为初始化数据,在应用程序中onLaunch使用wx.setStorage方法将数据存入到缓存中(key:"postData" data:"dataObj.postList")

只要用户不主动清除缓存,则缓存一直存在

缓存以key:value键值对的形式存在,很类似于服务器流行的memcache或者redis缓存型数据库

小程序提供了一系列API用来操作缓存,包括:存储,读取,移除,清除全部,和获取缓存信息

请注意清除和移除,删除某一个key的缓存,请使用wx.removeStrorage方法,删除所有的wx.clearStorage,不存在过期时间,如果想清除缓存,则需要主动调用清除缓存的API

所有的异步API都会有success,fail,complete

key用来设置缓存的键,data是用来缓存的数据

c3feacac651b

异步缓存:

var dataObj=require("data/data.js")

App({

onLaunch:function(){

// key: 'postData',

// data: 'dataObj.postList',

// success:function(res){

// },

// fail: function () {

// },

// complete: function () {

// },

// })

//同步缓存

}

})

同步缓存的方法wx.setStorageSync是在异步方法名中wx.setStorageSync后面加上Sync,其他的异步方法也是加上sync,,没有success,fail,complete方法,建议优先使用同步方法

小程序每一次启动就会执行一次require和一次setStorageSync,这是非常麻烦的,我们应当让数据库在不存在时候,才会缓存数据。要不然每一次数据修改就会被初始化数据覆盖

App({//数据初始化判断

onLaunch:function(){

// key: 'postData',

// data: 'dataObj.postList',

// success:function(res){

// },

// fail: function () {

// },

// complete: function () {

// },

// })

//同步缓存

优化缓存的初始化判断:

var storageData=wx.getStorageSync('postData');

if(!storageData){

var dataObj = require("data/data.js");

}

}

})

wx.getStorageSync(key)这个方法可以首先获取指定的key的值缓存内容,如果没有则指定的key的缓存不存在,先清除所有的缓存,wx.clearStorage(),才开始初始化数据库,避免了每次都要初始化数据库

第一次写文章,不足之处多多指教

分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:3875789
帖子:775174
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP