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

现在将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是用来缓存的数据

异步缓存:

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(),才开始初始化数据库,避免了每次都要初始化数据库

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

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

  1. 微信小程序操作mysql_微信小程序:数据库操作

    原标题:微信小程序:数据库操作 一.前提条件: 登录开发者工具软件,配置数据库数据集,操作如下: 打开云开发控制台 添加集合User 二.定义函数: //增加新纪录到云数据库 onAdd: funct ...

  2. 【微信小程序】CSS模块化、使用缓存在本地模拟服务器数据库

  3. 微信支付异步回调mysql_微信支付异步回调,带你解决微信支付的深坑

    1.首先我们先下载微信支付的服务器端demo 2.个文件作用介绍 index.jsp  下单  payRequest.jsp  获取微信支付prepay_id等. 重点我说说这个payNotifyUr ...

  4. 微信公众平台开发 mysql_微信公众平台开发数据库操作

    一.简介 前面讲解的功能开发都是简单的调用API 完成的,没有对数据库进行操作.在接下来的高级功能开发中,需要使用到数据库,所以在这一篇中,将对MySQL 数据库的操作做一下简单的介绍,以供读者参考. ...

  5. 高并发用redis还是mysql_高并发架构系列:Redis缓存和MySQL数据一致性方案详解

    需求起因 在高并发的业务场景下,数据库大多数情况都是用户并发访问最薄弱的环节.所以,就需要使用redis做一个缓冲操作,让请求先访问到redis,而不是直接访问MySQL等数据库. 这个业务场景,主要 ...

  6. 同时存多个变量缓存 微信小程序_微信小程序 缓存(本地缓存、异步缓存、同步缓存)详解...

    微信小程序 缓存 关于本地缓存 1.wx.setStorage(wx.setStorageSync).wx.getStorage(wx.getStorageSync).wx.clearStorage( ...

  7. uni-app微信小程序image引入图片;background-image背景图引入图片;小程序预览本地图片;小程序图片过大引入报错;获取本地图片的网络地址;

    uni-app小程序图片使用有image标签和background-image背景图两种方式: 下有获取本地图片的网络地址方式:见第四步 一.方式一:使用image标签引入: uni-app官方ima ...

  8. echarts异步数据加载MySQL_微信小程序 Echarts 异步数据更新

    微信小程序 Echarts 异步数据更新的练习,被坑了很多次,特作记录. 作者:罗兵 地址:https://www.cnblogs.com/hhh5460/p/9989805.html 0.效果图 1 ...

  9. 从api接口获取信息缓存到本地(微信小程序)

    当我们登录以后获取的信息,有些信息在后面的一些操作也会用到这些信息,我们不可能每次都重新获取,所以这时候我们就需要将这些信息缓存到本地. 比如下面这个样 登录成功后我们可以在Sorage查看缓存的信息 ...

最新文章

  1. GitLab CI流水线配置文件.gitlab-ci.yml详解(三)
  2. 你的通勤时间都去哪了?
  3. 【Trie】最大异或对(ybtoj Trie-2)
  4. [html] 使用svg画一个爱心
  5. 【Pytorch神经网络实战案例】02 CIFAR-10数据集:Pytorch使用GPU训练CNN模版-方法②
  6. Vue-router学习(一)- 路由匹配
  7. Ubuntu 20.04 LTS(Focal Fossa)发布
  8. 二叉树中节点的最大的距离(编程之美3.8)
  9. visual studio code 如何取消提示
  10. OpenCV : 投影变换
  11. STM32 vcap引脚
  12. 与卿共赴鸿蒙是什么意思,经典的爱情诗句
  13. MessageDigest
  14. python 空白行_python去掉空白行的多种实现代码
  15. 万年历打印Java_java实验之打印万年历
  16. Windows全局鼠标手势——MouseInc
  17. 阅读心得1:《蚂蚁金服11.11:支付宝和蚂蚁花呗的技术架构及实践 》
  18. ASR中常用的语音特征之FBank和MFCC
  19. 小明对数位中含有 2、0、1、9 的数字很感兴趣,在 1 到 40 中这样的数包 括 1、2、9、10 至 32、39 和 40,共 28 个,他们的和是 574。 请问,在 1 到 2019 中,所
  20. 浅入浅出数据分析之Hello NumPy系列(四)

热门文章

  1. c语言中有关main的问题,c语言小问题
  2. python 实例化父类对象_在Python中从现有超类实例化子类
  3. python计算precision,recall,f1-score
  4. nginx+uWSGI + django部署项目
  5. 建立带头结点的双向链表_尾插法
  6. C++ windows 平台的 Hook
  7. 脏读、不可重复读和幻读
  8. CMU本科计算机科学,CMU计算机科学学院本科难录吗?
  9. stm32的afio初始化代码_STM32-IO-AFIO(复用功能IO和调试配置)
  10. centos 7 nginx hhvm mysql_CentOS 7 编译安装 HHVM 3.4.1