|
应用逻辑:
web组件的事件顺序是怎样的?我猜想是:
onPagestart > onTitlereceive > onError | onPagefinish
所以:
1、我将 onPagestart 作为一次web加载的生命周期的开始,初始化进度条。
2、经历 onTitlereceive 进度更新到一半。
3、到达 onError | onPagefinish 时,隐藏进度条,并显示错误提示界面 或 加载到的网页。
但是,我这边测试出现了:
onPagestart > onTitlereceive > onPagefinish > onPagefinish > onError > onPagefinish
这种情况!!!
场景说明:
这是一个单页面应用,所有的跳转都用js实现的界面切换,并无网络请求。
出现此种情况(onPagestart > onTitlereceive > onPagefinish > onPagefinish > onError > onPagefinish)的动作分解如下:
1、页面打开(界面1):onPagestart > onTitlereceive > onPagefinish 这是正常的。
2、点击界面切换(切换到界面2)onPagefinish > onError > onPagefinish。
由此造成:第2个动作时因为没有onPagestart所以不展现进度条,严重的是居然出现onError,这会使错误界面弹出("type":"error","errorMsg":"http error"),但实际是并无加载错误产生(js切换不请求新的页面),在浏览器上是没问题的。
那么问题来了:
为什么第2个动作以onPagefinish开始,中间还出现onError ?
|
|