最近公司上了一个国安局的项目,局方使用的浏览器是IE11,前端使用react+antdesign+umi开发,本来也是支持IE11的框架,既然用户说要固定浏览器,就主要在IE11上测试
最近现场报回来一个BUG,有概率的出现浏览器跳转等待转圈的时间太长的问题,通过抓包等技术手段进行排查,发现现场的浏览器就是发送目标网址的URL地址太慢,而且只有一台电脑能够复现,公司测试的电脑一直无法复现
定位的问题很多
- JS代码太卡
- 现场网络问题
- 样式问题
- 等等
还有很多,但是一直写Demo,加日志,都复现不了,查这个BUG用了两天时间,一度我和测试都差点奔溃
最后定位到项目中sessionStorage中有值,而测试的Demo中没有
同时网上还查了window.open函数的执行流程和坑点
步骤如下:
- 打开新窗口
- 复制sessionStorage到新的窗口
- 打开目标url
BUG就出在步骤2上,说到底还是自己对于流程不熟,部分浏览器在执行步骤2的时候会卡顿,所以解决办法是执行完第1步后,清空新打开的窗口的sessionStorage
具体代码如下
let win = window.open()
win.sessionStorage.clear()
win.location.href = redirectURL
可以参考 https://juejin.im/post/5af55b296fb9a07ace58ecc6
另外如果还有安全性问题 可以参考 https://imweb.io/topic/584cd0459be501ba17b10aaa