programacionAlgunos 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. :)

programacion2