firefox快速刷新error及解決辦法

問題:

    測試發過來bug,說——頻繁F5刷新頁面,會閃現未加載完樣式的頁面;
    開發用的Chrome,沒發現這個問題,測試用的firefox,因而從瀏覽器的刷新加載機制方面搜索解決辦法,沒搜到,運氣好,最後找到了解決辦法
    firefox下頻繁F5刷新還有個問題——可能ajax未請求完成就刷新了,Chrome下是刷新就自動canceld,可是firefox好像不是,上一次請求的結果由於刷新頁面因此執行了error方法,頁面閃現一下error方法的結果知道新的頁面請求完成。ajax

 

請求根本沒有發送到後臺,狀態碼是0表示沒有發出ajax請求。各個狀態含義:跨域

  • 0 - (未初始化)尚未調用send()方法
  • 1 - (載入)已調用send()方法,正在發送請求
  • 2 - (載入完成)send()方法執行完成,
  • 3 - (交互)正在解析響應內容
  • 4 - (完成)響應內容解析完成,能夠在客戶端調用了

jQuery ajax請求錯誤返回status 0和錯誤error的問題,分析可能的緣由:瀏覽器

  • url不存在(排除)
  • url不可達(排除)
  • 發送了跨域請求(排除)
  • 數據格式錯(排除)
  • ajax在完成以前請求已經被取消(ajax請求沒有發出),因爲,例如:頁面已經跳轉或跳轉太快、瀏覽器輸入新的url、按鈕當即新的點擊等肯定

用status作判斷條件,status爲0,說明當前是中斷,或者unsent,opened,則不執行error
可是!經過Chrome的調試能夠看出,一樣是status爲0,有canceled和failed兩種狀態,這個還找不到辦法判斷。函數

解決辦法:測試

error: function (jqXHR,textStatus,errorthrown) {url

  //當前請求容器爲空或錯誤緣由爲超時時才執行err firefox

  if(jqXHR.status!==0 || textStatus=="timeout"){調試

    err ? err(jqXHR) : alert("原函數error");開發

  }io

}

相關文章
相關標籤/搜索