关于http请求在ie中F12查看显示已挂起,反应时间缓慢的问题
2016-07-28 14:49
519 查看
在系统维护开发中,遇见一个问题,就是某个功能处理很慢,慢到什么程度,批量审批十条工单信息,耗时大概是15+min,这个是绝对不能忍受的问题,看功能逻辑和代码逻辑,没有任何问题,可能代码处理不是很高效,但是也不能如此的缓慢。。。
在ie11中,f12查看,捕获网络,查看请求耗时,发现主要请求都在请求action上,ie11在f12状态,直接显示已挂起,之后进行百度解疑,才发现可能是请求方式的问题。
浏览器的确是发送了post请求,但是该请求“结果”栏显示的是“已终止”,“发起程序”值 是“已挂起”。请求头、请求体、响应头、响应体都是空的。也就说浏览器发送了1个异常的请求。
后台的action也收到了post的请求,但是没有获取到请求参数的值。
个人感觉,可能是页面请求在拼post的请求体时,会相对比较耗时,还没有执行完毕。此时页面关闭,JS终止了执行,浏览器发送了1个不完全的HTTP请求(没有附上请求体)。基于这个结论,我们将POST请求,改成Get请求,服务端能够收到请求的参数值了,时间也很快,十条单子批量审核,大概不到20s,这就算是正常反应了。
因为按钮触发的是js事件,在你点击按钮,触发js方法的时候,他去拼参数,如果是post请求,他js触发之后,需要把请求参数放在包体中,但是js请求之后,已经没有jsp容许你去放包体参数,所以参数可能丢失或者不全,这样action接收不到正常请求参数,前台挂起。修改为get请求之后,拼接的参数是放在url之后,这样action是肯定可以收到请求参数的,这样后台有响应,前台自然不会挂起。
在ie11中,f12查看,捕获网络,查看请求耗时,发现主要请求都在请求action上,ie11在f12状态,直接显示已挂起,之后进行百度解疑,才发现可能是请求方式的问题。
浏览器的确是发送了post请求,但是该请求“结果”栏显示的是“已终止”,“发起程序”值 是“已挂起”。请求头、请求体、响应头、响应体都是空的。也就说浏览器发送了1个异常的请求。
后台的action也收到了post的请求,但是没有获取到请求参数的值。
个人感觉,可能是页面请求在拼post的请求体时,会相对比较耗时,还没有执行完毕。此时页面关闭,JS终止了执行,浏览器发送了1个不完全的HTTP请求(没有附上请求体)。基于这个结论,我们将POST请求,改成Get请求,服务端能够收到请求的参数值了,时间也很快,十条单子批量审核,大概不到20s,这就算是正常反应了。
因为按钮触发的是js事件,在你点击按钮,触发js方法的时候,他去拼参数,如果是post请求,他js触发之后,需要把请求参数放在包体中,但是js请求之后,已经没有jsp容许你去放包体参数,所以参数可能丢失或者不全,这样action接收不到正常请求参数,前台挂起。修改为get请求之后,拼接的参数是放在url之后,这样action是肯定可以收到请求参数的,这样后台有响应,前台自然不会挂起。
相关文章推荐
- RPC failed; result=22, HTTP code = 411
- Extjs4.0 最新最全视频教程
- Javascript中toFixed方法的改进
- 5个常见可用性错误和解决方案
- HTTP Header 属性列表
- nginx中http核心模块的配置指令2
- nginx中http核心模块的配置指令3
- nginx中http核心模块的配置指令4
- nginx中http的fastcgi模块的配置指令1
- js数组实现图片轮播
- 如何在 Linux 中快速地通过 HTTP 提供文件访问服务
- js可突破windows弹退效果代码
- 深入HTTP head的使用详解
- Ruby程序中发送基于HTTP协议的请求的简单示例
- JSP脚本漏洞面面观
- ASP 中使用 HTTP 协议发送参数详解
- C#基于socket模拟http请求的方法