2010-01-14 82 views
0

我正在ASP.NET中開發一個網站,我正在使用各種JavaScript框架/庫。屬於這些框架/庫的不同文件很少發生變化,因此,一旦將這些文件發送到客戶端瀏覽器(至少不是每次提供頁面),就沒有理由刷新這些文件。ASP.NET指定應緩存哪些文件

我看到HttpContext對象可以以某種方式使用,我可以在IIS上的文件/文件夾上設置內容過期,或者可以在web.config文件中設置一些緩存。

。什麼是最佳實踐/我應該採取什麼方法?

如果IIS上的內容過期有效,那麼這很好(而且容易)。但是在開發過程中,我使用ASP.NET開發服務器,不與外部交互的IIS - 因此沒有性能增益的發展:(

期間實現我如何在這裏使用的緩存(取決於問題1 )?

我想修改這個問題在HttpContext的唯一控制被用作「這 - 是 - 如何,其功能完成」線程爲我將來的參考等。

+1

你是否有機會在啓用了IPv6的情況下運行Windows Vista,這會導致開發Web服務器在Firefox中速度非常慢。 –

+0

@Jonas:我正在運行Windows XP Pro,並且在IE中的性能感覺相同。 – Chau

+1

好的。在任何情況下,如果我是你,如果你想專注於服務器特定的設置,比如在開發過程中進行緩存,我會針對本地IIS開發而不是開發服務器。這應該更靈活,並且可以減少開發和生產設置之間的差異。 –

回答

2

的緩存設置如何緩存aspx頁面,而不是緩存瀏覽器包含的文件(javascript,css,images ...)。

默認情況下,瀏覽器會緩存JavaScript文件,而且無論您是在本地運行還是在線運行,這都幾乎相同。通常,如果您在腳本中進行更改以使瀏覽器加載新版本,則必須創建Ctrl + F5或清除緩存。

所以,你根本不需要做任何事情,browswer已經緩存了這些文件。

+0

我其實懷疑你說的是真的。但是當我看着FireBug中的NET選項卡時,它聲稱它使用10秒以上來接收1MB的JavaScript文件 - 這是本地的。這個文件的響應頭文件指出cache-control:private,而請求頭文件指出cache-control:max_age = 0。 – Chau

1

我想如果你正在尋找緩存的文件,那麼必須在IIS端完成。 您可以嘗試使用FireBug的YSloy(通過Yahoo)擴展。這非常好,應該用作最佳實踐。希望這將是有益的:)

+0

YSlow現已包含在我的開發人員工具中。關於JavaScript文件和緩存,YSlow抱怨沒有「遠期到期日期」 - 這與我正在經歷的缺乏緩存相對應。 – Chau

相關問題