关于请求被挂起页面加载缓慢问题的追查
这篇讲的是前端工程师在内部系统里遭遇的一个棘手怪问题:页面请求在 Chrome 中频繁出现 “Pending” 状态,加载耗时数十秒甚至超过一分钟,却能最终成功返回,不触发超时错误。问题偶发且难以复现,给排查带来极大困难。 作者团队从几个常见方向入手,逐一排除了 Angular 框架性能、内部封装库、Chrome 插件干扰以及杀毒软件的可能性。排查的核心手段是借助 Chrome 开发者工具和 `chrome://net-internals` 捕获网络日志,通过对比正常与异常请求的详细信息来寻找线索。 经过大量搜索和尝试,最终在 Chrome 网络栈的源码中发现了关键点:问题与浏览器对域名的并发连接数限制以及 “CACHE LOCK” 机制有关。当多个标签页同时请求同一域名下的资源时,后续请求会被前置的 DNS 预解析锁住,从而陷入长时间等待。文章最后给出的解决方案是在服务器端启用 HTTP/2 协议,有效缓解了这一问题。整个追查过程展现了从现象分析到源码层面深挖的完整技术排查路径。