TOC

This article is currently in the process of being translated into Spanish (~73% done).

Caching:

OutputCache

En este capítulo, echaremos un vistazo a la directiva OutputCache, que es, con mucho, la forma más fácil de almacenar en caché el contenido con ASP.NET. Como verás en nuestro ejemplo, ni siquiera requiere ningún código, sólo algunos cambios menores en el marcado de la página, y listo. En el próximo capítulo, veremos más formas de usar la directiva OuputCachce.

Aquí hay un ejemplo muy simple de una página que nos mostrará la diferencia entre una página en caché y una página sin caché. Intente crear un nuevo proyecto, y cambie la página Default.aspx para que contenga el siguiente marcado:

<%@ Page Language="C#" AutoEventWireup="true"  CodeFile="Default.aspx.cs" Inherits="_Default" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
    <title>Caching</title>
</head>
<body>
    <form id="form1" runat="server">
        <%= DateTime.Now.ToString() %>
    </form>
</body>
</html>

Todo esto es lenguaje estándar, excepto la línea con el DateTime. Esto simplemente muestra como salida la fecha y hora actual en la página. Intente ejecutar el proyecto y recargar la página un par de veces. Como podrás ver, la hora se actualizará cada vez que se recargue. Ahora, agregue la siguiente línea como la número dos a nuestro ejemplo:

<%@ OutputCache duration="10" varybyparam="None" %>

Ejecute nuevamente el proyecto, y recargue la página unas cuantas veces. Como podrás ver, la hora se actualiza solamente cada diez segundos. ¡Agregar opciones de caché en tu página es tan simple como eso! Ahora, el parámetro de duración es muy obvio – le indica a la página por cuanto tiempo debe almacenar el contenido en caché. Cada vez que la página es solicitada, ASP.NET revisa si la página está en caché, y si está, revisa si ha expirado o no. Vuelve a cargarse desde el caché si no ha expirado, y si expiró, se remueve la página del caché y se genera la página desde cero, para ubicarla nuevamente en caché.

The varybyparam is a required parameter of the OutputCache directive. It specifies a list of parameters which the the cache should be varied by. For instance, if you set it to "p", the cache is now depending on the value of the parameter p. Try changing our example to something like this:

<%@ Page Language="C#" AutoEventWireup="true"  CodeFile="Default.aspx.cs" Inherits="_Default" %>
<%@ OutputCache duration="10" varybyparam="p" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
    <title>Caching</title>
</head>
<body>
    <form id="form1" runat="server">
        <%= DateTime.Now.ToString() %><br />
        <a href="?p=1">1</a><br />
        <a href="?p=2">2</a><br />
        <a href="?p=3">3</a><br />
    </form>
</body>
</html>

Now, run our example again, and try clicking the links. They each now have their own timestamp, based on when you first accessed the page. The cache is depending on the value of the p parameter! You can specify multiple parameters by seperating them with a semicolon.


This article has been fully translated into the following languages: Is your preferred language not on the list? Click here to help us translate this article into your language!