建構函式和例項

2021-07-25 10:19:41 字數 2031 閱讀 1735

瀏覽器http快取機制

瀏覽器快取機制包括http協議和非http協議。

一、非http協議:

在html meta 標籤中,告訴瀏覽器當前頁面不進行快取,每次訪問都去伺服器拉取。但只有部分瀏覽器支援,且所有快取**伺服器都不支援。

具體為,在html頁面的節點中加入標籤,**為:

二、http協議:

表1 瀏覽器快取機制分類

強快取expires策略(http1.0)

通過設定到期時間(到十點)來決定何時用快取檔案

通過設定存活時間(1小時內),決定何時用快取檔案

協議快取

last-modified/if-modified-since

以時間問基礎,進行對比,看是否使用快取

etag/if-none-match

以資源檔案變動時不同識別符號為基礎,看是否使用快取

1、expires策略(http1.0)和cache-control策略(http1.1)

相同點:

兩者均是web伺服器響應訊息頭欄位,在響應http請求時告訴瀏覽器在過期時間前瀏覽器可以直接從瀏覽器緩訪問資料,而無需再次請求。

不同點:

expires返回的到期時間是伺服器端的時間。這樣存在乙個問題,如果客戶端的時間與伺服器的時間相差很大(比如時鐘不同步,或者跨時區),就會導致較大的誤差,所以在http 1.1版開始,使用cache-control: max-age=秒替代。cache-control的選擇更多,設定更細緻,如果同時設定的話,優先順序比expires高。

cache-control的值可以是:public、private、no-cache、no- store、no-transform、must-revalidate、proxy-revalidate、max-age。其中最為常用的是cache-control: max-age=秒,意思是在指定時間內,使用的是快取資料,無需向伺服器傳送請求。

2、last-modified/if-modified-since(last-modified/if-modified-since要配合cache-control使用)

1)last-modified:web伺服器在響應請求時,告訴瀏覽器

資源的最後修改時間

。2)if-modified-since:當資源過期時(即超過cache-control標識的max-age時),發現資源具有3)last-modified宣告,則再次向web伺服器請求時帶上頭 if-modified-since,內容為last-modified屬性值(資源最後修改的時間)。web伺服器收到請求後發現有頭if-modified-since,就會和伺服器上資源的最新修改時間進行對比。若最後修改時間較新,說明資源又被改動過,則響應資源最新的內容(寫在響應訊息包體內),http 200;若時間一致,說明資源沒有修改,則響應http 304 (無資源內容,客戶端收到響應後,直接顯示本地快取的內容)。

3、etag/if-none-match

1)瀏覽器第一次跟伺服器請求乙個資源,伺服器在返回這個資源的同時,在respone的header加上etag的header,這個header是伺服器根據當前請求的資源生成的唯一標識字串,只要資源有變化字串就變化,跟最後修改時間沒有關係;

2)瀏覽器再次請求相同資源時,在request的header上加上if-none-match,這個header的值就是上一次請求時返回的etag的值;

3)伺服器再次收到資源請求時,再根據資源生成乙個新的etag,與瀏覽器傳過來if-none-match比較,如果這兩個值相同就說明資源沒有變化,否則就是有變化;如果沒有變化則返回304 not modified,但是不會返回資源內容,瀏覽器載入快取檔案;如果有變化,返回資源內容。與last-modified不一樣的是,當伺服器返回304 not modified的響應時,由於etag重新生成過,response header中還會把這個etag返回,即使這個etag跟之前相同。

建構函式和例項化

1.物件是構造的。不呼叫建構函式,就不能建立乙個新的物件。2.每個類,包括抽象類,都必須有乙個建構函式。一定要牢記這一點。但是,每個類必須有乙個建構函式並不意味著程式設計師必須輸入它。3.建構函式沒有任何返回型別。建構函式規則 1.建構函式能夠使用任何訪問修飾符,包括private。私有建構函式指只...

建構函式和析構函式例項解析

在c 中,建立物件時呼叫建構函式進行初始化,物件結束生命週期時呼叫析構函式進行 善後 工作。三 建構函式的分類 程式中難以察覺的錯誤多是由於變數沒有被正確初始化或清除造成的,而初始化和清除工作很容易被人遺忘。bjarne stroustrup在設計c 語言時充分考慮到了這個問題並很好地加以解決。建立...

建構函式 例項解析

class person public string name public ganderenum gander public int weight public person ganderenum g int weight 建構函式,沒有返回值 public person ganderenum g...