最近,需要优化页面返回逻辑,在这过程中,遇到一个bug,折腾了一天。
❎存在的问题(:webview中,从页面A到页面B,在页面A中created钩子函数中初始化请求接口,数据回来之后满足条件立即push B页面。期望从B页面回退能到A页面,目前情况是从B页面时不时的不能返回到A页面,而是返回到进入A页面的页面。
✅怎么解决的:经过观察,猜想一,是不是A页面的栈记录没有被push到浏览器中,于是乎在B页面打印history.length,发现确实和猜想一致。但是为什么会导致这种情况,多方了解之后,知道hash在有些手机上实现不是很好。好吧🤷♀️,那我在微信浏览器上测试一番,并没有存在以上的问题。因此换成history模式,在webview中测试并不复现以上问题。因此觉得是webview在实现hash上的锅。但是细想,😲不对,那为什么在webview有时候行有时候不行。猜想二,是不是页面A执行速度太快,还没来得及push到栈里面就跳走了呢?我把push这个操作延时到足够长的时间,测试多次之后,嗯~~,还是会复现。so,让hash来背锅吧,hiahiahiahia