我使用jQuery 1.4.2和jQuery Form的ajaxSubmit通过带有许多输入字段的POST提交大型(~500kb)表单。在现代浏览器(Chrome,Firefox测试)中,一切都运行正常,除了IE在较慢的PC上(7,9测试)。
每个经过测试的浏览器都会提交表单,并根据请求的大小,在合理的时间内(~3-30秒)获得一个简短的JSON响应。
但是当使用网站时,人们在IE中保存时报告的性能/损坏数据非常慢。在我的PC上的标准IE9(i5,2核心)我没有问题,网站按预期工作。
所以我为具有1个内核和1024 mb Ram的旧IE浏览器(IE7,IE9)设置了2个具有微软兼容性图像的虚拟机,以重现性能降低并再次尝试保存。结果是Ajax请求完成时间超过10分钟(IE7和IE9)。
开发人员工具(IE9)向我展示了整个10分钟的待处理请求。然后我在IE9 VPC上安装了Chrome,看看是否有虚拟化问题,但我的加载时间约为20秒。
附加问题:当通过加载另一个站点来中断请求时,POST数据有时会被破坏,导致POST数据的某些部分丢失。但仍在调试这个。
进一步潜水我安装了WireShark来分析传输到服务器的POST请求,比较IE / Chrome差异。一切看起来都很正常,我提交表格后不久就发送了请求(约10秒)。至少对于IE9,请求参数几乎相同。只是来自服务器的响应很晚才到达IE请求。
我检查了服务器日志,但我发现没有什么特别的,同样,IE POST请求比Chrome浏览器晚10分钟生成一个日志条目。
还有一点值得一提:小型POST请求工作正常,此处没有缓慢的问题。
现在我有些无助,有人能指出我正确的方向吗? 在将请求真正发送到服务器之前显示WireShark吗? 该网站相当大+ 2MB Html可能是问题的一部分? 有想法的人接下来会尝试什么?有个微笑问题的人可能吗?