微信小程序storage缓存机制,同步方法和异步方法详解

操作 异步方法 同步方法

插入 wx.setStorage wx.setStorageSync

读取 wx.getStorage wx.getStorageSync

删除 wx.removeStorage wx.removeStorageSync

清空 wx.clearStorage wx.clearStorageSync

获取缓存信息 wx.getStorageInfo wx.getStorageInfoSync


以Sync结尾都是同步方法。同步方法和异步方法的区别是:


同步方法会堵塞当前任务,直到同步方法处理返回。

异步方法不会塞当前任务。

6.下面以插入缓存的两个方法说明同步和异步的区别:



先调用异步方法,再调用同步方法

Page({

    save: function(e){

    console.log('开始保存')

    wx.setStorage({

      key: 'key1',

      data: 'data1',

      success: function(res){

        console.log('异步保存成功')

      }

    })

    wx.setStorageSync('key2', 'data2')

    console.log('同步保存成功')

  }

})

打印结果

//开始保存

//同步保存成功

//异步保存成功


可以看出,同步方法比异步方法先保存成功,说明异步方法没有阻塞当前任务。



先调用同步方法,再调用异步方法

Page({

    save: function(e){

    console.log('开始保存')

    wx.setStorageSync('key2', 'data2')

    console.log('同步保存成功')

    wx.setStorage({

      key: 'key1',

      data: 'data1',

      success: function(res){

        console.log('异步保存成功')

      }

    })

  }

})

打印结果

//开始保存

//同步保存成功

//异步保存成功



最后一个是缓存隔离级别的问题:


同一手机,不同小程序应用,至少在逻辑存储上肯定不是共享缓存,满足应用级别隔离。

同一手机,同一个小程序,不同微信用户扫码使用,经测试,也不共享缓存,目前测试条件下,是用户级别隔离。

同一手机,同一个小程序,同一微信用户两次扫码使用,经测试,是共享缓存。

同一手机,同一个小程序,不同微信用户切换使用(分别扫码两次),经测试,同一个用户共享缓存,不同用户间不共享缓存。

目前可以推断在真机调试条件下,每个小程序扫码用户都会分配10M的本地缓存。

你可能感兴趣的:(微信小程序storage缓存机制,同步方法和异步方法详解)