onHide:监听页面的隐藏
- 当从当前A页跳转到其他页面,那么A页面处于隐藏状态。
onUnload:监听页面的卸载
- 当前处于A页面,点击返回按钮时,则将是A页面卸载、
利用这两个生命周期可以解决的问题:
- 防止用户快速切换页面(A->B)。导致动态设置导航栏中的文字显示出现错误
- 快速切换页面可能导致A页面中的数据还未返回,致使当切换到B页面的时候A数据才返回,使得导航栏显示的文字为A页面的导航栏标题。(即:A页面的导航栏标题为hello,B页面的导航栏标题为world,当快速由A->B,此时虽然在B页面,但是导航栏标题显示的是hello,而不是world)
解决方法(由A跳转到B)
- 设置一个全局变量flag=false(在app.js中定义全局变量)
- 当A页面显示的时候将flag设置为false(使用【getApp().data.】访问全局变量,此处我将app=getApp())
- 当A页面隐藏(onHide)时,将flag设置为true
- 在A页面中的请求数据的函数里,设置当flag为true时,阻止继续请求,避免对B页面的显示造成一定的影响