在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問答/HTML5  HTML/ 關(guān)于瀏覽器的緩存問題

關(guān)于瀏覽器的緩存問題

<!doctype html>
<html>
<head>
    <meta charset="utf-8">
    <title>無標(biāo)題文檔</title>
    <link id="style" href="" rel="stylesheet">
</head>

<body>
    <script>
        var css = document.getElementById( "style" );
        window.onhashchange = function() {
            var hash = window.location.hash.substring( 2 );
            css.href = hash + ".css";
        };
    </script>
</body>
</html>

在本地服務(wù)器環(huán)境下運行以上代碼,根據(jù)hash值的不同加載對應(yīng)的css文件,但是發(fā)現(xiàn)瀏覽器在hash值之間切換時,先加載的總是會被重復(fù)加載,也就是第二次沒有去讀取緩存,而后加載的就不會,例如我訪問http://localhost/1.html#/active,加載情況如圖:
圖片描述

如果先訪問http://localhost/1.html#/index,加載情況如圖:
圖片描述

想問這是瀏覽器的一種機(jī)制么,有啥可以避免或者這種機(jī)制存在的理由?本來是想利用緩存來做點事情,雖然影響不大,但是感覺能避免盡量避免。

回答
編輯回答
涼薄

你肯定是代碼中已經(jīng)寫了加載index.cssactive.css的代碼。

如果你注釋以下代碼,兩個文件都會正常下載:

 <script>
        var css = document.getElementById( "style" );
        window.onhashchange = function() {
            var hash = window.location.hash.substring( 2 );
            css.href = hash + ".css";
        };
    </script>

那么你每次hash變更其實就是多發(fā)了一個當(dāng)前hash的css。

2017年8月15日 16:56
編輯回答
裸橙

瀏覽器 hash 值切換 也就是 # 號后面的內(nèi)容變更,不會對服務(wù)器發(fā)起請求,

2017年5月6日 09:51