前兩天發現了一個對於我而言比較獵奇的事情:在點擊跳轉鏈接以後,新打開的頁面出現異常(原本是要直接跳轉到網頁版qq的,結果白屏),順手F12了一下,看到一個紅色的請求,哦原來是有請求失敗了呀,再仔細一看...這個請求返回的status是canceled,奇怪哦,被cancel掉了。 前端
瀏覽器你就不能矜矜業業的好好發送請求嗎? node
待我平靜下來,去sf上面找答案,在通過幾回超鏈的跳轉以後,我來到了一個盡是English的頁面,雖然本人英語還算不差,可是當時心浮氣躁,沒看兩眼就關掉了。(那個時候的我只想當一個無腦的伸手黨...恨不得有人能夠給我活靈活現的講解一下...)
最後去求助了一位好盆友,才知道了這個問題的答案,不賣關子,先來解答。瀏覽器
stackoverflow上面的最高票回答: 服務器
劃個重點:微信
The DOM element that caused the request to be made got deleted (i.e. an IMG is being loaded, but before the load happened, you deleted the IMG node)app
You did something that made loading the data unnecessary. (i.e. you started loading a iframe, then changed the src or overwrite the contents)spa
There are lots of requests going to the same server, and a network problem on earlier requests showed that subsequent requests weren't going to work (DNS lookup error, earlier (same) request resulted e.g. HTTP 400 error code, etc)3d
根據上面所說的,瀏覽器之因此會幹掉請求,有如下三種緣由:code
發起此次請求的DOM元素被刪除了。(eg:一個img元素節點,在圖片加載完成以前就不幸被刪掉了)server
開發者作了一些使加載數據變得沒必要要的事情。(eg:你加載了一個iframe,接着直接改變了src或者用document.write重寫了內容)
有大量的請求指向同一個服務器,以前請求的錯誤代表相同後續的請求是行不通的(DNS查詢錯誤、或是排在前面誒對相同請求是有錯誤的,好比400狀態碼)
通過這個事情,不只get到了一個新姿式,並且更重要的是得到到的反思。
感謝個人好友磊磊用實際行動告訴我:忌浮躁。
可是並非每一個故事都有一個happy ending,我在一開始說的頁面白屏問題尚未獲得解決,更奇怪的是...周圍同事們都紛紛表示這個頁面沒問題...我也沒配host啊...不過已經能夠基本鎖定是我這邊出的問題了...若是你有相似的狀況...我能夠求你賜個教嗎...
這是一個自認爲還算有趣的前端er