Algunos programadores se encuentran con problemas a la hora de refrescar una página web porque a veces la caché nos incordia ofreciendo resultados antiguos.
A mi concretamente me ha pasado en los formularios, cuando se cambia los valores de un “Select” y al refrescar la página, el “Select” del formulario sigue sin cambiar, y eso aunque tenga activado el selected=”selected”
Para desconectar o evitar la cache, he reunido los siguientes trucos, espero que le sea útil a algún programador de webs:
Evitar la caché en los formularios
En todos los elementos “problematicos” en el form, como los select, hay que escribir: autocomplete=”off”
Por ejemplo, en un “Select” se haría así:
<select name="OnOff10" id="OnOff10" autocomplete="off">
<option value="0">Off</option>
<option value="1">On</option>
</select>
Evitar la caché con ASP
En programación con ASP, para no tener caché al inicio del código se utiliza lo siguiente :
<%
Response.CacheControl = "no-cache"
Response.AddHeader "Pragma", "no-cache"
Response.Expires = -1
%>
Evitar la caché con PHP
Para forzar saltar la caché en programación con PHP, al inicio del código se utiliza lo siguiente :
En PHP se puede utilizar lo siguiente para forzar saltarse el cache:
<$ header( "Expires: Mon, 20 Dec 1998 01:00:00 GMT" );
header( "Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT" );
header( "Cache-Control: no-cache, must-revalidate" );
header( "Pragma: no-cache" );
$>
Evitar la caché con HTML
En el HTML hay que poner lo siguiente entre las etiquetas <HEAD> y </HEAD>:
<META HTTP-EQUIV="Pragma" CONTENT="no-cache">
<META HTTP-EQUIV="Expires" CONTENT="-1">
Evitar la caché con JavaScript
Utilizando Javascript, se puede poner el siguiente código en la etiqueta <BODY>, por ejemplo:
<BODY onLoad="if ('Navigator' == navigator.appName)
document.forms[0].reset();">
Y esto es todo, si alguien tiene más formas, que las escriba en los comentarios.
