终于解决“百年一遇”奇怪问题

经过四天的奋战,终于解决了“百年一遇”奇怪问题!下面分享一下。

问题详情:

  见百年一遇的奇怪问题:当IE遇上.NET Framework 4.5

问题出现的前提条件:

  • 安装了 .NET Framework 4.5
  • 浏览器用的是 IE
  • ajax 请求由 ASP.NET MVC 处理
  • ajax 请求通过 post 发起,并且请求数量比较多
  • ajax 请求未处理完成,连接就被中断(比如 F5 刷新浏览器)

问题的影响:

  出现问题时,IE 浏览器一直处于等待状态,只有重启 IE 才能解决问题,对用户体验影响非常大。

解决方法:

  在 js 代码中将 ajax 请求方式由 post 改为 get,代码如下:

$.ajax({
    type: 'postget'
});

找到解决方法的关键过程:

  1. 找出问题是由 ajax 请求被中断引起的,详见"百年一遇"奇怪问题的进展:找到原因,ajax请求中断引起

  2. 采用很原始的方法 —— 排除法,一段一段去除代码,逐步缩小范围,直到出现 —— 去除这段代码问题就消失,加上这段代码问题就出现。

收获的经验:

  在 ajax 请求中尽量少用 HTTP POST。

感言:

  如果把解决问题当作一种乐趣,程序人生将其乐无穷。

 

posted @ 2012-09-17 08:46  dudu  阅读(7973)  评论(45编辑  收藏  举报