1. 為什麼要在css或者js文件後面加問號帶參數
js或css帶參數,是為了避免舊的瀏覽器緩存繼續生效;特別是在大型站中隨時可能會更改局部css文件
2. 引用css和js鏈接地址中帶的問號是什麼意思
問號是網址(標准叫法是url)中主體部分(文件路徑)與參數部分的分割符,一般用於給動態網頁傳遞參數。css和js鏈接地址中帶的問號,作用則主要是為了「騙」瀏覽器的。我們都知道,瀏覽器肯定都有緩存文件的,當再次訪問一個相同的網址時(包括htm、css、js以及各種圖片),瀏覽器會首先去提取緩存文件,尤其是手機上的瀏覽器,由於涉及流量(每一秒都是錢啊),所以緩存文件的優先順序更高,網站上的文件發生變化後,手機上可能過很久脊卜都仍然是更新前的頁面(有的甚至要過24小時才會生效)。這種做法,雖然可以節省手機流量,但是對於網站的開發者來說就會造成困擾了,因為網頁做了修改(比如圖片改了,但文件名不變),卻無法立即反映到用戶的設備上。這時候就可以在網址(htm文件以及文件中包含的各種資源)中加個問號,後面再加個隨機的數叢野山字(或者字元),這樣瀏覽器就會認為這是個不同的網址,就會跳過緩存直接去網站提取,這樣用戶的手機上就會立刻出現更新後的網頁或者資源(如css、滲中js以及圖片)了。
3. 瀏覽器不緩存有問號的css文件
怎樣解決css緩存的問
步驟1/6
新建一個html文件,命名為test.html,用於講解怎樣解肆談決css緩存的問題。
步驟2/6
在test.html文件中,使用div標簽裂豎碰創建一個模纖宏塊,用於測試。
步驟3/6
在test.html文件中,給div標簽添加一個class屬性,用於樣式的設置。
步驟4/6
新建一個css文件,命名為test.css,在文件內通過class定義div的css樣式 ,設置其寬度為200px,高度為200px,背景顏色為紅色。
步驟5/6
在test.html文件中,在js標簽內,使用write()方法輸出css文件的link標簽,並在css路徑的末尾通過日期對象隨機一個數字。
步驟6/6
在瀏覽器打開test.html文件,查看頁面效果,css文件就不會緩存了。
1、使用div標簽創建一個模塊,創建一個css文件。
2、在js中,通過class獲得div對象,使用write()方法輸出css文件的link標簽,並在css路徑的末尾通過日期對象隨機一個數字。
4. css中引入字體文件ttf或者woff的時候後面帶餐是怎麼實現的
這是個隨機字串,如果沒有這個,那麼瀏覽器每次都會從緩存中讀取字體文件(除非網頁是首次運行);而如果有了這個字串,瀏覽器就會認為這是個新的url,就會重新從網上下載這個字體文件而不是從緩存中讀取;當然,如果下下次這個字串沒有變化,那麼瀏覽器仍然會從緩存中去讀取的。
所以這種技術通常用於網頁
數據文件
的版本有變化時可以讓瀏覽器立刻使用新版本的內容及代碼,比如說js文件和css文件,修改後再上傳到網站,用戶在網頁上是不會立刻看到修改後的效果的,必須等
瀏覽器緩存
的生命周期到期(或者讓用戶手動清理緩存)後才會更新,遇到這種情況,網頁設計者就可以在文件名的後面加個問號再加個隨機的字元串,用戶只要一刷新網頁就可以立刻看到新效果了。
不過像字體文件這種通常都是沒什麼變化的,所以並不適合用這種更新技術,盡量讓瀏覽器直接從緩存中讀取即可,這樣可以加快網頁的載入速度,提高效率。也就是說你把問號以及後面的一大串字元都刪掉也是沒問題的。
至於如何實現,你可以利用前端或後台腳本來生成隨機字元串並拼接到文件路徑的後面(用問號分隔)來實現這種效果。
5. html裡面 <link href="...css/index.csst=20121210" rel="stylesheet"/> t=20121210的作用
為了防止網路資祥棗源的浪費,瀏覽器謹昌拆會對一些css和js文件進行緩存
同個網站調用緩存文件還是重新下載,瀏覽器主要是憑文件名,包含迅顫問號及其之後的數字,所以很多時候我們就把後面的數字作為版本號
這樣在用戶訪問的過程中更新網站程序,新的js和css也會被下載。
6. 鏈接CSS文件名後面跟著問號是什麼意思
這個沒什畝猜么意思,就是為了區分版本號而寫的。方便告耐辯項目開發的時候對比線上和線下的版本,避免沖突。
另外一個重要作用是防止緩存。現在的伺服器都開了緩存功襪缺能,如果想要修改這個css馬上生效那就只有在css文件後面加一個 標識來區分達到目的。
問號後面隨便寫什麼都可以 只要不是很特殊的
7. 【瀏覽器緩存問題】HTML靜態文件中,css和js可以添加版本號來刷新緩存,但是只是修改的文字了呢
給網址後面添加一個隨機數(或者是任意的字元串)即可,比如原來的答迅枝網址是這樣的:
http....../.../1.htm
改為
http....../昌閉.../1.htm?1234
即可(注意問號不能省)。
瀏覽器是根據網址來緩存的,所以只要給網址接個尾巴清敏,瀏覽器就會認為是新網址,就會從網上重新下載數據了。當然,如果下次再次改變了網頁內容,這個尾巴就要再次修改。
給css和js添加所謂版本號其實也是同一個原理。這個版本號其實就是給css和js的網址接個尾巴而已。
這個也同樣適用網頁裡面的圖片、音樂等資源,事實上只要是http協議的元素都可以利用這個辦法來避開緩存實時刷新。