終於解決“百年一遇”奇怪問題


經過四天的奮戰,終於解決了“百年一遇”奇怪問題!下面分享一下。

問題詳情:

  見百年一遇的奇怪問題:當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。

感言:

  如果把解決問題當作一種樂趣,程序人生將其樂無窮。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM