IIS(動態和靜態)記憶體、OutPutCache 和瀏覽器記憶體有什麼區別
IIS (Dynamic and Static)記憶體OutPutCache和記憶體有什麼區別browser cache?我想我對他們感到困惑。
瀏覽器是否記憶體所有 js 或 css 文件?
如果我使用
IIS記憶體而不使用會發生OutputCache什麼?如果我同時使用會發生什麼?
這
OutPutCache是保存在伺服器上的頁面/控制項記憶體,用於從該頁面/控制項的渲染中獲得處理速度。這
browser cache是您在頁面上設置的標頭命令,並指示客戶端瀏覽器將頁面保留在客戶端電腦記憶體上一段時間,而不是從伺服器讀取它。
static cache是當您為所有使用者共同的內容設置記憶體時,以及當Dynamic cache您為同一頁面設置不同的記憶體並取決於使用者或其他參數時。你也可以說靜態是不變的內容(例如圖像,html頁面等),動態是像aspx頁面一樣變化的內容的記憶體。IIS 可以為圖像和所有此類未更改的內容設置記憶體,並且您對瀏覽器說要保留“長時間”。
您需要使用所有記憶體的組合來獲得最佳結果,而不是使用什麼和不使用什麼。對變化不大的靜態內容記憶體較多,對動態內容記憶體較少。
瀏覽器是否記憶體所有 js 或 css 文件?
瀏覽器只做你說他做的事情。因此,您需要在瀏覽器的頁眉上設置您希望瀏覽器將此文件保留在客戶端記憶體中的時間。如果你沒有設置任何東西,那麼 IIS 會為 Js 和 Css 和圖像等靜態內容設置文件創建日期,瀏覽器可以使用它來詢問伺服器是否需要再次讀取它。
靜態和動態
關於靜態和動態記憶體的另一個資訊是動態記憶體上的瀏覽器詢問伺服器是否需要更新,如果答案是肯定的,則再次讀取頁面。這樣瀏覽器總是呼叫伺服器,但並不總是取回內容。
另一種方式是靜態的,在這個記憶體中瀏覽器記憶體內容並且從不要求伺服器重新讀取它。例如,對於靜態內容的圖像,您設置了一個大記憶體,並且瀏覽器不再詢問伺服器,而是使用客戶端記憶體中的圖像。
您可以在 web.config 上設置此靜態內容記憶體
<staticContent> <clientCache cacheControlMaxAge ="8.00:00:00" cacheControlMode="UseMaxAge" /> </staticContent>瀏覽器的動態記憶體是您需要以程式方式製作的東西。您在標頭上設置一個參數,當瀏覽器請求內容時,您讀取此參數並決定要重播的內容,新內容或從記憶體中讀取的命令。
一些範例:在 ASP.NET MVC 中創建 ETag 過濾器
http://jagbarcelo.blogspot.com/2009/03/conditional-get-and-etag-implementation.html
if I use both IIS cache and OutputCache?其實這是兩個不同的想法,由他們自己行動。讓我們看看發生了什麼的一些步驟。
客戶端A瀏覽器:請給我頁面default.aspx
伺服器響應:好的,請稍等。讓我看看我在 OutpuCache 上有沒有?不,我現在製作並將其保存到 OutPutCache。現在我發給你。
(waiting time 600 ms + 70ms Network Lag) + 2000ms to download the mage客戶端 B 瀏覽器:請給我頁面 default.aspx
伺服器響應:好的,請稍等。讓我看看我在 OutpuCache 上有沒有?是的,我從記憶體中讀取並發送它。`(等待時間 100 ms + 70ms 網路延遲)+ 2000ms 下載法師
客戶端 A 瀏覽器:請給我頁面 default.aspx,我最後的記憶體說該文件的日期:2012 年 3 月 12 日。
伺服器響應:hmm 你不需要重新讀取它,因為它沒有被修改,使用你的本地記憶體。
(waiting time 80 ms + 70ms Network Lag) + 0ms to download the page當頁面在 OutputCache 上找到時,對使用者的影響是沒有等待頁面開始顯示這麼多東西。
當發現頁面沒有被修改時,效果是**使用者看到頁面的方式幾乎是正確的,**因為不是等待頁面下載。
當內容是靜態的(如圖像)並在記憶體中找到時,瀏覽器會以正確的方式顯示它而無需詢問伺服器,因此這是使用者查看本地記憶體中的內容的更快方式。