前序:
某天接收了一个新项目(投资交易系统),简单的了解后,然后启动并且修复了几个
bug,部署验证OK.
问题:
过几天有几个bug需要紧急修复,我正常修复后,然后提交部署,验证问题时,发现页面无法正常工作.
排查过程
1.一顿Check后,发现没有什么,然后又偷偷摸摸再打了个包,结果依旧不行.
2.本地运行看看是否能重现.(结果本地是好的)
3.这个时候选择了部署包回滚,回滚后,结果依旧不行,奔溃了.(缓存什么都检查了)
4.把问题抛到了群里,质问谁谁动了后端代码和配置. (没人响应,石沉大海)
5.找对应的后端leader排查,结果发现他电脑尽然是好的,怀疑是缓存,一顿缓存清理后,结果依旧是好的(蒙圈了)
6.果断选择重启电脑.(不幸的是这次观音菩萨尽然没有显灵)
7.用Safari浏览器尝试(发现尽然可以,认为代码有bug,这个时候有点想骂娘,之前的系统怎么能留这么大的坑)
8.不断调试,向上追溯问题,
过程中困难:
页面渲染函数执行量太多,并且刚接手项目,对项目不够熟悉,无法精确定位那一步重写了XMLHttpRequest?
1.系统代码全局搜索,搜索到几个疑似的代码片段(业务复杂、代码混淆)
2.然后根据疑似代码片段在浏览器中寻找资源代码进行调试(一顿操作后,发现并没有得到想要的结果)
3.根据在浏览器所有的资源中寻找 (也没有搜索到目标)
4.扩大范围,在每个文件里面搜索XMLHttpRequest,经过千辛万苦,终于在某JS中找到目标. ,并且这个JS尽然是Chrome浏览器的的。
分析:
1.为什么开发环境没有问题?
JS加载的顺序和测试环境不一样.
2.为什么前几天可以,今天就突然就不行?
我记忆中最近没有安装新的插件,只能怀疑之前的网速不太好加载重写
留个研究话题:
插件的JS和代码的JS,加载和执行顺序的优先策略是怎样的?