2012-08-29 43 views
5

我想要在瀏覽器中緩存一個特定的aspx頁面。我有充分的理由把它作爲一個ASPX頁面,我需要瀏覽器上的緩存。瀏覽器的緩存是否考慮到URL中的參數? (ASPX頁面)

現在,在服務器緩存上,我可以通過參數改變緩存。瀏覽器在緩存頁面響應時是否也考慮了參數?

E.g.將以下兩個響應保存爲瀏覽器上的兩個不同緩存項目http://mypage.com/page.aspx?Param=1http://mypage.com/page.aspx?Param=2

回答

5

是,瀏覽器將把這些網址作爲2個不同的資源,因此將分別緩存它們(如果緩存頭指示這樣做)。

您可以使用Fiddler輕鬆地進行測試。

+0

感謝您指向小提琴手的指針。雖然我沒有用它來解決這個問題,但它對我所擁有的其他東西肯定有幫助。 –

2

編輯2: How to instruct browsers to ignore GET parameters when caching a resource描述了一個類似的問題,如果要將這兩個頁面緩存爲同一頁面,則可能會很困難。如果你想他們是不同的,你應該默認行爲來設置,但要確保你的

<META HTTP-EQUIV="CACHE-CONTROL" CONTENT="CACHE"> 

標記設置明確地告訴瀏覽器來做到這一點。

原始回答:

你可以選擇,如果你想要它。例如,如果你想那些緩存不同,設置輸出緩存中的VaryByParam =「參數」:

<%@ OutputCache Duration="60" VaryByParam="Param" %> 

,如果你不使用的參數選項組合不同,這兩個頁面將緩存相同。如果你想改變多個參數,用分號分隔它們。如果你想通過所有PARAMS變化,我們*通配符:輸出緩存

<%@ OutputCache Duration="60" VaryByParam="*" %> 

更多信息: http://msdn.microsoft.com/en-us/library/y96218s9.aspx

編輯: 剛剛重新閱讀你的問題。這將導致服務器端的緩存,而不是瀏覽器。