Modifier

.net 2 : Cache dépendance et suppression

Modifier

suppression

Suppression du cache sur une page précise
HttpResponse.RemoveOutputCacheItem("/caching/CacheForever.aspx");

Suppression du cache sur toutes les pages ayant une dépendance précise
Response.AddCacheItemDependency("Pages");

Ce type de dépendance peut être géré au niveau du global .asax

protected void Application_Start(Object sender, EventArgs e)
{
HttpContext.Current.Cache.Insert("Pages", DateTime.Now, null,
System.DateTime.MaxValue, System.TimeSpan.Zero,
System.Web.Caching.CacheItemPriority.NotRemovable,
null);
}

Modifier

Partage du cache

Suppression de tout cache
<%@ OutputCache location="none" %>
sur tous les composants n'ayant pas variation par paramètres
<%@ OutputCache Duration="30" VaryByParam="none" Shared="true" %>
Attention bug sur le varybycontrol sur le control, le cache semble ne pas prendre en compte ces inputs.
Modifier

Par programmation

1/ Navigateur client

Modification complète des header.
Liste des valeurs possibles

Response.ClearHeaders();
Response.AppendHeader("Cache-Control", "no-cache"); //HTTP 1.1
Response.AppendHeader("Cache-Control", "private"); // HTTP 1.1
Response.AppendHeader("Cache-Control", "no-store"); // HTTP 1.1
Response.AppendHeader("Cache-Control", "must-revalidate"); // HTTP 1.1
Response.AppendHeader("Cache-Control", "max-stale=0"); // HTTP 1.1
Response.AppendHeader("Cache-Control", "post-check=0"); // HTTP 1.1
Response.AppendHeader("Cache-Control", "pre-check=0"); // HTTP 1.1
Response.AppendHeader("Pragma", "no-cache"); // HTTP 1.1
Response.AppendHeader("Keep-Alive", "timeout=3, max=993"); // HTTP 1.1
Response.AppendHeader("Expires", "Mon, 26 Jul 1997 05:00:00 GMT"); // HTTP 1.1

Response.AppendHeader("Cache-Control", "no-cache"); //HTTP 1.1
Cela ne permettra pas non plus à l'utilisateur de faire un back, le navigateur affiche alors "cette page a expirée".
Mais les instructions suivantes sont les plus utilisées
Response.Addheader "cache-control","private"
Response.AddHeader "pragma", "no-cache"

' Tout ceci pour désactiver la mise en cache.
____
Equivalence en html


REFERENCE : http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html

Modifier

Limitation taille et chargement de fichiers

Il existe une limitation dans le machine.config qui peut être overridée en mettant dans le web.config la configuration suivante
chiffre en KiloBytes.
{BR}
<System.Web>{BR}
<httpRuntime maxRequestLength="10000" />{BR}
</System.Web>{BR}

Points importants