2011-01-30 2 views
8

W IIS7 mam możliwość ustawiania opcji buforowania. Opcje te są dodawane do mojego web.config jako takiego ...IIS7 Web.Config Caching - jakie są różnice tutaj i jak to wszystko razem?

<caching maxCacheSize="262144"> 
     <profiles> 
      <add extension=".png" policy="CacheUntilChange" kernelCachePolicy="CacheUntilChange" duration="00:00:30" /> 
      <add extension=".jpeg" policy="CacheUntilChange" kernelCachePolicy="CacheUntilChange" duration="00:00:30" /> 
      <add extension=".jpg" policy="CacheUntilChange" kernelCachePolicy="CacheUntilChange" duration="00:00:30" /> 
      <add extension=".css" policy="CacheUntilChange" kernelCachePolicy="CacheUntilChange" duration="00:00:30" /> 
      <add extension=".js" policy="CacheUntilChange" kernelCachePolicy="CacheUntilChange" duration="00:00:30" /> 
     </profiles> 
    </caching> 

Jednak Mam też następujące dla „buforowanie”

<staticContent> 
     <clientCache cacheControlMode="UseMaxAge" cacheControlMaxAge="90.00:00:00" /> 
     <remove fileExtension=".js" /> 
     <mimeMap fileExtension=".js" mimeType="text/javascript" /> 
    </staticContent> 

Jakie są różnice między tymi dwoma configs? Oba są zagnieżdżone w tagu <system.webServer>, więc oba są poprawne dla IIS7.

Również, jakie jest właściwe podejście podczas korzystania z nich? Obecnie używam tylko tego jest mój folder zasobów statycznych. Nie używam tego buforowania na niczym innym.

Z góry dziękuję.

+0

Chase, udało ci się dowiedzieć anymore informacje na ten temat? StaticContent wydaje się mucking z moich profili buforowania i jestem ciekawy wszelkich informacji, które mogą być udostępniane. – goodwince

+0

Po zapytaniu, zapomniałem o tym. Chciałbym uzyskać dobrą kanoniczną odpowiedź. –

Odpowiedz

4

Główna różnica polega na tym, że pierwsze buforowanie jest po stronie serwera (w zasadzie przechowuje dane wyjściowe strony w pamięci dla kolejnych żądań), drugie jest stroną klienta (zostaną uwzględnione nagłówki odpowiedzi, informuje przeglądarkę, jak lokalnie zarządzaj buforowanymi plikami na komputerze klienta).

+0

Jeśli określisz lokalizację = "ServerAndClient" w znaczniku dodaj rozszerzenie = ". Png", możesz buforować na kliencie, a także na serwerze –

0

Zauważyłem, że ludzie często mylą to, co powyżej i pisać artykuły, w których goście polecają rzeczy jak w pierwszym bloku, czyli wyjście do buforowania zasobów statycznych

Output caching:

buforowanie wyjścia jest niepotrzebny dla plików statycznych, takich jak HTML, JPG lub plików GIF i może spowodować więcej napowietrznych pamięci dynamicznej ASP.NET lub PHP stron, które odczytać z bazy danych, które często się zmieniają

Zatem

<add extension=".png" ../> 
<add extension=".jpeg" ../> 
etc. 

jest bezużyteczny, przynajmniej jeśli nie masz ashx obsługi HTTP dla .png lub .jpeg itp

Powiązane problemy