收藏
回答

wx.setStorage缓存数据和app.js中全局数据,两者效果是否一致?

  wx.setStorage缓存的数据 和 在app.js中设置的全局数据 , 这两个的生命周期都是一样的吗?  是否可以认为这两中数据缓存效果完全一致呢?

回答关注问题邀请回答
收藏

1 个回答

  • Q_Q
    Q_Q
    2019-01-17

    1.全局变量应该是用户进入后台一定时间或者说系统资源占用过高会被主动销毁。

    参考:当用户点击左上角关闭,或者按了设备 Home 键离开微信,小程序并没有直接销毁,而是进入了后台;当再次进入微信或再次打开小程序,又会从后台进入前台。

    只有当小程序进入后台一定时间,或者系统资源占用过高,才会被真正的销毁。

    2.而wx.setStorage会在你主动删除小程序或者说其他缓存过大(小程序或者微信缓存)时会被微信清空。

    两个缓存效果肯定是不一样的,如果想长期缓存肯定是用后者,但是由于其他缓存过大也会被清空,所以重要数据肯定也是不能放在storage里面的




    2019-01-17
    有用
    回复 2
    • 2019-01-17


      这句话让我有点迷惑,  他说 setStorage超过一定时间也是会被清理的.. 而且生命周期和小程序一样! 那不就是和 app全局数据一样吗?

      2019-01-17
      回复
    • Q_Q
      Q_Q
      2019-01-17回复

      我觉得还是有一些不一样的,app全局数据应该是读内存的(猜测),setStorage()应该是localStorage的机制,就像存在本地数据库一样,是读文件的,所以相比较全局数据读取更快一些。

      一个是全部页面可以使用的东西,一个类似于数据库。比如登录你要所有页面都判断登录态那么你可以使用全局变量,但比如你页面需要缓存一些数据,下次不用从后台接口得到,那么就使用缓存。

      (可能不准确,但是具体他们实现机制是怎么样的,这个只有官方知道了)

      2019-01-17
      回复
登录 后发表内容