1、问题描述
开发环境正常运行,部署上线后点击某一按钮请求接口时页面出现卡死。在Network=>Timing发现异常提示: caution:request is not finished yet
2、问题分析
(1)通过Postman模拟请求接口,接口正常。
(2)本地部署前端代码,ip和localhost访问时页面不会出现卡死问题。此时我有点怀疑人生,既然都是部署,那就彻底一点,通过内网映射的域名访问前端,终于还原卡死的异常问题。
(3)还原异常问题还是不够,我需要找到问题所在位置。因为只有点击对应的那个按钮才会出现页面卡死问题。所以将点击事件逐一排查,排查的方式简单粗暴,就是排除法,通过注释一段段代码调试。
(4)最后发现是这串代码有问题,min>max会导致死循环(项目实际最大最小值会以参数控制)
其实在开发环境点击按钮时,Console中Vue已经打印警告提示
3、总结
页面出现卡死的具体原因各种各样,但大部分都是由于死循环导致的,如果你也遇到此类问题,可以通过Console异常提示,还有排除法(通过注释相关代码排除,找到出现问题的位置)解决问题。
根据自己的代码有技巧使用排查手段分析问题,毕竟由于死循环出现卡死问题的场景不一,希望通过以上的思路能找到解决问题的灵感。