收藏
回答

存入globalData里面的openid只存在半小时左右就没了?

我在登录成功的时候,把openid存入globalData全局变量里,然后在其他页面取,一开始是没问题的,但是过了半小时不到,再次打开页面的时候,存在globalData里面的openid就没了,但我在globalData里面写死的域名是一直存在的,只有赋值的openid没了

用过checkSession,判断是登录状态,并没有退出,也考虑过是onLoad执行的速度比app.js快,但用了setTimeout延迟了几秒还是没获取到,请问该怎么解决?(最好先不用缓存)


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

6 个回答

  • i
W
    i W
    2020-06-23

    半个小时,小程序都销毁了吧,在重新进去的时候,得要重新登录了,不知道你这个判断登录状态是什么情况。。

    2020-06-23
    有用 1
    回复 5
    • 风云再起
      风云再起
      2020-06-23
      半个小时小程序就会销毁吗,好像我见别的小程序没有那么快销毁把,判断登录是判断小程序有没有授权登录,因为我是在登录的时候才赋值给openid的
      2020-06-23
      回复
    • i
W
      i W
      2020-06-23回复风云再起
      不用想了,肯定是代码逻辑有问题,你在重新进来,小程序就初始化了,所有数据都清空了,你又不需要登录,所以是空的,改一下你判断登录那里吧,或者用缓存
      2020-06-23
      回复
    • 风云再起
      风云再起
      2020-06-23
      嗯,那我先试着改一下登录判断,不行就用缓存把,还有个疑问,小程序多久初始化
      2020-06-23
      回复
    • i
W
      i W
      2020-06-23回复风云再起
      退出后,五分钟左右吧,我也不太清楚,看别人说的,没有具体测试,可能内存不足或者什么其他的销毁更快。。。
      2020-06-23
      回复
    • 风云再起
      风云再起
      2020-06-23
      嗯,虽然我说的是半小时,但的确是时间不固定,可能是二十几分钟,也有四十几分钟的,应该就像你说的初始化了
      2020-06-23
      回复
  • 神经蛙
    神经蛙
    2020-06-23

    应该是你逻辑写的有问题,根据你的说法,我的反应是你编译一下,但是没有再次执行登录事件,所以openid就空了

    2020-06-23
    有用 1
    回复 10
    • 风云再起
      风云再起
      2020-06-23
      我也上传过体验版用真机测试过,也是同样的问题,而且我是先判断是否为登陆状态,是的话就不会执行登录事件,那我半小时前登录存入globalData里的openid就会空了吗
      2020-06-23
      回复
    • 神经蛙
      神经蛙
      2020-06-23回复风云再起
      重新编译之后,存在全局的数据就没了
      2020-06-23
      回复
    • 风云再起
      风云再起
      2020-06-23
      用真机也会重新编译的吗,不是开发者工具,而且写死的域名是有的,只是登录赋值的openid没了
      2020-06-23
      回复
    • 神经蛙
      神经蛙
      2020-06-23回复风云再起
      开发工具的编译,就是关掉小程序,重新进入小程序
      2020-06-23
      回复
    • 神经蛙
      神经蛙
      2020-06-23回复风云再起
      所以你写死的东西都会有的,但是已经授权过了,所以不会再次登录,openid就空了
      2020-06-23
      回复
    查看更多(5)
  • ㅤ
    2020-07-02

    可以wx.setStorage里面

    2020-07-02
    有用
    回复
  • H1HAO 🇨🇳
    H1HAO 🇨🇳
    2020-06-23

    一般整个小程序也就只有这个id需要存入缓存,任何在其他页面获取缓存,没有缓存就重新登入,有缓存就请求看这个缓存id有没有失效,失效就重新登录没失效接着走下一步

    2020-06-23
    有用
    回复 2
    • 风云再起
      风云再起
      2020-06-23
      你是请求了什么方法,返回得code去判断有没有失效的
      2020-06-23
      回复
    • H1HAO 🇨🇳
      H1HAO 🇨🇳
      2020-06-24回复风云再起
      后台给的啊,后台有个时间逻辑,自定义,后台想设多久就设置多久,我这边后台写的是一个24小时,但是几乎都是会重新获取的,因为你一个小程序不可能一直在后台的,还有就是这个用户信息,不要存到缓存里,直接发请求放globalData里面,方便更新数据
      2020-06-24
      回复
  • o0o有脾气的酸奶
    o0o有脾气的酸奶
    2020-06-23

    为啥先不用缓存?

    写死的肯定一直都在呀,难道还跑了不成?

    根据你描述的情况,估计是代码写得有问题


    2020-06-23
    有用
    回复 5
    • 风云再起
      风云再起
      2020-06-23
      因为就像你说的,我代码写的有问题,不解决就只能一直用缓存了- -
      2020-06-23
      回复
    • o0o有脾气的酸奶
      o0o有脾气的酸奶
      2020-06-23回复风云再起
      那你就发你写的代码咯
      2020-06-23
      回复
    • 风云再起
      风云再起
      2020-06-23
      2020-06-23
      回复
    • o0o有脾气的酸奶
      o0o有脾气的酸奶
      2020-06-23回复风云再起
      globalData.openid赋值的逻辑呢?
      2020-06-23
      回复
    • 风云再起
      风云再起
      2020-06-23
      就这一句话,没有在其他地方再赋值了
      2020-06-23
      回复
  • 陈政
    陈政
    2020-06-23

    globalData不好用 存缓存吧

    2020-06-23
    有用
    回复 1
    • 风云再起
      风云再起
      2020-06-23
      我是觉得后面如果存的东西多了,用缓存不方便,globalData能直接取值
      2020-06-23
      回复
登录 后发表内容
问题标签