大橙子网站建设,新征程启航
为企业提供网站建设、域名注册、服务器等服务
在系统维护开发中,遇见一个问题,就是某个功能处理很慢,慢到什么程度,批量审批十条工单信息,耗时大概是15+min,这个是绝对不能忍受的问题,看功能逻辑和代码逻辑,没有任何问题,可能代码处理不是很高效,但是也不能如此的缓慢。。。
创新互联建站长期为上千家客户提供的网站建设服务,团队从业经验10年,关注不同地域、不同群体,并针对不同对象提供差异化的产品和服务;打造开放共赢平台,与合作伙伴共同营造健康的互联网生态环境。为苍梧企业提供专业的成都网站制作、成都网站设计,苍梧网站改版等技术服务。拥有十载丰富建站经验和众多成功案例,为您定制开发。在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是肯定可以收到请求参数的,这样后台有响应,前台自然不会挂起。
另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。