zoukankan      html  css  js  c++  java
  • 微信小程序API---数据缓存

        本地数据缓存常用于存储多页面用到的数据,例如用户头像信息、

    (1)数据存储

        wx.setStorage(Object object)与wx.setStorageSync(string key, any data)

    wx.setStorage({
      key:"key",
      data:"value"
    })
    
    同步语法:
    try {
      wx.setStorageSync('key', 'value')
    } catch (e) {
      ...
    }

        日常开发里为了数据的正确执行获取,一般使用wx.setStorageSync,即wx.setStorage 的同步版本,进行数据存储。详情参见微信小程序---存储本地缓存数据

        

    【拓展】关于同步缓存和异步缓存的区别
        以Sync(同步,同时)结尾的都是都是同步缓存,二者的区别是,异步不会阻塞当前任务,同步缓存直到同步方法处理完才能继续往下执行。
        通俗点说,异步就是不管保没保存成功,程序都会继续往下执行.同步是等保存成功了,才会执行下面的代码.
        使用异步,性能会更好;而使用同步,数据会更安全。

        Synchronize同步

    (2)获取指定 key 的内容

         wx.getStorage(Object object)与wx.getStorageSync(string key)

    wx.getStorage({
      key: 'key',
      success (res) {
        console.log(res.data)
      }
    })
    
    同步语法:
    try { var value = wx.getStorageSync('key') if (value) { // Do something with return value } } catch (e) { // Do something when catch error }

        其他页面获取数据

    <view class="showUserArea">
      <image src="{{userInfo.avatarUrl}}"></image>
      <text>{{userInfo.nickName}}</text>
    </view>
    
    /* 用户展示区域 */
    .showUserArea{
       100%;
      height: 400rpx;
      background:#388bff;
      display: flex;
      flex-direction: column;
      align-items:center;/*垂直居中*/
      justify-content: center;/*水平居中*/
    }
    .showUserArea>image{
       128rpx;
      height: 128rpx;
      border-radius: 50%;
    }
    
    onShow(){
        var res = wx.getStorageSync('userInfo');//获取缓存用户数据
        try {
          if (res) {
            this.setData({
              userInfo: res
            })
    
          }
        } catch (e) {
          // Do something when catch error
    
        }
      }

    遗留问题:真机测试获取失败。。。。。。。。。 

    (3)获取当前storage的相关信息

        wx.getStorageInfo(Object object)与Object wx.getStorageInfoSync()

    wx.getStorageInfo({
      success (res) {
        console.log(res.keys)
        console.log(res.currentSize)
        console.log(res.limitSize)
      }
    })
    
    同步版本:
    try {
      const res = wx.getStorageInfoSync()
      console.log(res.keys)
      console.log(res.currentSize)
      console.log(res.limitSize)
    } catch (e) {
      // Do something when catch error
    }

    (4)本地缓存中移除指定 key

        wx.removeStorage(Object object)与wx.getStorageSync(string key)

    wx.getStorage({
      key: 'key',
      success (res) {
        console.log(res.data)
      }
    })
    
    同步版本:
    try {
      var value = wx.getStorageSync('key')
      if (value) {
        // Do something with return value
      }
    } catch (e) {
      // Do something when catch error
    }

    (5)清理本地数据缓存

        wx.clearStorage(Object object)与wx.clearStorageSync()

    wx.clearStorage()
    
    同步版本:
    try {
      wx.clearStorageSync()
    } catch(e) {
      // Do something when catch error
    }

    .

  • 相关阅读:
    TypeScript学习笔记(七):模块
    TypeScript学习笔记(六):泛型
    TypeScript学习笔记(五):接口
    TypeScript学习笔记(四):函数
    TypeScript学习笔记(三):类
    TypeScript学习笔记(二):基本数据类型及数据转换
    TypeScript学习笔记(一):介绍及环境搭建
    Egret的VS环境搭配
    [U3D Demo] 手机飞机大战
    Unity3D之UGUI学习笔记(三):EventSystem
  • 原文地址:https://www.cnblogs.com/fightjianxian/p/11107002.html
Copyright © 2011-2022 走看看