14.10.2015, Vladimír Klaus, navštíveno 3518x

ASP.NET/C#

Pokud občas analyzujete weby pomocí služeb jako je např. https://gtmetrix.com/, pak vám asi často vyběhne informace, že je třeba zlepšit "Leverage browser caching". Na systémech s Apache funguje soubor .htaccess, ale na IIS bohužel ne.

Naštěstí je zde pěkné a jednoduché řešení - úprava souboru Web.config a to takto: 

<configuration>
  <system.webServer>
    <staticContent>
      <clientCache cacheControlMaxAge="30.00:00:00"
                   cacheControlMode="UseMaxAge"/>
    </staticContent>
  </system.webServer>
</configuration>

Tímto nadefinujeme, že soubory mají "životnost" 30 dní a teprve poté se je prohlížeč bude snažit znovu stáhnout.

Výsledkem bude pochopitelně rychlejší načítání stránek, protože se nevykonává řada (zbytečných) HTTP požadavků na stažení dat. Zvláště u obrázků, které jednou nahrajete na server a pak už neměníte, je to velmi výhodné.

Trochu jinou variantou je určení data, do kdy soubory platí, ale to není úplně ideální, protože někam zadávat fixní datum zavání problémem.

<configuration>
  <system.webServer>
    <staticContent>
      <clientCache httpExpires="Sun, 1 Jan 2017 00:00:00 UTC"
                   cacheControlMode="UseExpires"/>
    </staticContent>
  </system.webServer>
</configuration>

Zdroje: