收藏
回答

从A页面navigateTo进入B页面,为啥A页面的方法为何依然运行




想问一下各位大佬,当从A页面进入B页面是,A页面的方法还在运行;


比方 我在 A页面 写了一个不断请求数据的方法Afn (当然正常不会这样写的),当我由A页面使用回退按钮进入B页面后,发现方法Afn依然在运行,即使此时打印 ```getCurrentPages()``` 发现页面栈只存在B页面了,方法Afn依然运行


这个可以解释一下吗,有大佬???说好的卸载啊!!难道不是吗,我之前一直认为是这样的,有点颠覆了

最后一次编辑于  2018-05-24  (未经腾讯允许,不得转载)
邀请回答
复制链接收藏投诉关注问题回答

18 个回答

  • June
    June
    2018-05-24


    2018-05-24
    赞同 33
    回复 6
    • Yopai
      Yopai
      2018-05-24
      那点击左上角回退箭头之后,页面栈中没有了页面A了,但是方法Afn依然运行,因为A页面还保留着?
      2018-05-24
      赞同
      回复
    • June
      June
      2018-05-24回复Yopai
      页面unload或者onhide的时候没有去释放掉相关引用或定时器之类的么?js这边是在一个线程跑的,要主动释放。
      2018-05-24
      赞同
      回复
    • You can you up
      You can you up
      2018-05-25回复Yopai
      写定时器了么
      2018-05-25
      赞同
      回复
    • Yopai
      Yopai
      2018-05-25回复June
      像方法Afn在 页面unload或者onhide就必须要主动释放掉?你们这边有相关的文档吗?
      2018-05-25
      赞同
      回复
    • Yopai
      Yopai
      2018-05-25回复You can you up
      没有的,就只是循环调用,成功之后在调用,就像递归
      2018-05-25
      赞同
      回复
    查看更多(1)
  • iZdo
    iZdo
    2018-05-24

    用navigateTo A页面不会被销毁 ,小程序的请求是异步的,所以依然会运行


    2018-05-24
    赞同 11
    回复 2
    • Yopai
      Yopai
      2018-05-24
      我可能没有写清除,是通过左上角回退按钮进入B,页面栈中已经销毁了,但是方法Afn依然在运行?? 这是因为异步的原因?
      2018-05-24
      赞同
      回复
    • iZdo
      iZdo
      2018-05-24回复Yopai
      那我就不清楚了
      2018-05-24
      赞同
      回复
  • Yopai
    Yopai
    2018-05-24

    感觉是由于闭包的原因造成的,方法Afn 还是在占用内存。那小程序生命周期卸载到底值得是什么的卸载???

    2018-05-24
    赞同
    回复 1
    • Yopai
      Yopai
      2018-05-24
      可以的话,@官方回复一下也可以的
      2018-05-24
      赞同
      回复
  • isYang
    isYang
    2018-05-25

    大兄弟用的是定时器吗,页面隐藏记得清除定时器(如果有用,麻烦赞同一下)

    2018-05-25
    赞同
    回复
  • 东流
    东流
    2018-05-28

    定时器还是在window下执行的,和page没有关系

    2018-05-28
    赞同
    回复
  • 刘弘愿
    刘弘愿
    2018-05-28

    你的方法Afn是写在PAGE里面的还是外面的。。。PAGE里面的,Afn:function(){} 这种方法会跟随PAGE销毁。。但是放在PAGE外面的function Afn(){},则还会在内存中执行。。。


    2018-05-28
    赞同
    回复 1
    • Yopai
      Yopai
      2018-05-29

      是在page里面执行的,但是没有销毁

      2018-05-29
      赞同
      回复