Ajax请求吃内存之奇葩经历
问题刚刚解决,记录下这个奇怪的问题。
1.在问题刚刚发现时并不是内存慢慢变大,而是“重置”查询条件后,在点击查询后一直处于查询状态。
2.首先想到的是跟踪调试查询请求,然后发现请求根本就没有到后台去,到Ajax发出异步请求后程序就卡到那里,觉得很是奇怪。
3.然后就一直无脑的查找问题,在等等请求的时候发现系统越来越快,于是打开任务管理器,一看发现内存在逐渐变大,逐渐到90%以上,cup也跟着飚上来了。
4.问题感觉越来越奇葩了,只是简单的发送一个Ajax请求,而且请求也没用到后台,为什么会导致内存变大.。。。。。。已经无语了。
5.虽然无语,但是问题还是要解决的,结束进程重新开始,然后在任务管理器上观察内存变大的原因,罪魁祸首是一直有从网络下载数据。
6.猜测:一定是有加载大数据的请求,F12打开 开发者工具,查看NetWork中的所有请求。果不其然,发现有一个请求(加载调出仓库下拉选项)一直处于请求状态,内存也一直跟着变大,如图
7.问题点找到了,问题也就相当与解决了。重置查询条件的操作会重新加载调出仓库的下拉选项,原来这个接口里面有语句废弃的SQL语句,当查询条件为空时,从数据库里捞出了近两千万条的数据。。。。。。
总结:所以看似有问题的地方,并非是真的有问题,而是由其他地方的问题导致的。