瀏覽器的重新整理原理

來源:互聯網
上載者:User

      今晚在做一個商品篩選的功能,通過幾十個商品參數篩選商品列表,因為參數太多,外加考慮到SEO的部分,所以我不想在地址欄暴漏參數傳遞的部分,所以就採用了POST傳值的方式來解決,但是POST傳值就面臨著使用者重新整理頁面的時候總是提示是否重新POST的對話方塊,用搜尋引擎搜了一下,目前市面上最常見的幾種解決方案都測試過,但是都不適合我的情況.最後我嘗試使用js在用戶端延時重新給action賦值隨機數,甚至用js延時動態建立form表單的方式都測試過,依然無法解決問題,偶爾看到一篇文章才明白原因.不敢藏私分享給大家.

     眾所周知瀏覽器是通過Last-Modified和Expires來處理緩衝的,具體機制就不做解釋,而在具體調試中發現並不按我們想象的方式進 行,其原因很有可能是在重新整理瀏覽器的時候採用不恰當的方式導致。對於大多數瀏覽器而言,都包含有三種重新整理方式,以下我們以IE瀏覽器為例:

F5 重新整理

Ctrl+F5 重新整理

“轉至”或地址欄裡斷行符號 重新整理

這些快速鍵的功能,主流瀏覽器都是相同的。

而這三種重新整理方式會導致瀏覽器採取不同的緩衝機制:

F5:不允許瀏覽器直接使用本機快取,因此Last-Modified能起作用,但Expires無效

Ctrl+F5:是強制重新整理,因此緩衝機制失效

“轉至”或地址欄裡斷行符號:正常的訪問,Last-Modified和Expires都有效

知道瀏覽器重新整理還有這麼一回事後,那麼以後在項目調試的過程中就不會感到疑惑了。

      總結一下可以這樣認為:瀏覽器在重新整理的時候是把上一次的post參數給記憶下來並重新傳遞給了伺服器,不管在這個過程中你是否做什麼樣的改動,他一概不予理會,而是忠實的把上一次所有POST的參數原封不動的重新發送給伺服器罷了.所以我的問題最終結論是無解的!!!悲哀~~~

      我剛剛看了一下部落格園的首頁翻頁似乎類似的做法,不過更糟糕的是,在非第一頁重新整理頁面直接就跑回第一頁去了.

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.