Foros del Web » Creando para Internet » HTML »

Forzar guardar en cache

Estas en el tema de Forzar guardar en cache en el foro de HTML en Foros del Web. Hola, No se exactamente si esto corresponderia estrictamente a html (¿los metadatos forman parte del html?) Bueno ahy va la pregunta, Hay alguna forma de ...
  #1 (permalink)  
Antiguo 01/07/2011, 04:26
 
Fecha de Ingreso: enero-2011
Ubicación: Barcelona
Mensajes: 79
Antigüedad: 6 años, 2 meses
Puntos: 1
Forzar guardar en cache

Hola,

No se exactamente si esto corresponderia estrictamente a html (¿los metadatos forman parte del html?)

Bueno ahy va la pregunta,

Hay alguna forma de forzar al navegador a guardar los datos de una pagina en cache indefinidamente? No se lenguaje php ni ajax ni nada parecido, así que queria hacerlo de forma sencilla para un principiante.

Quizas poniendole un:
Código HTML:
<meta http-equiv="Expires" content="Fri, 1 Jan 2210 00:00:00 GMT" /> 
Pero no se si esta función fuerza a que se guarden o simplemente "si se guardan" expirará ese dia.

Muchas gracias
  #2 (permalink)  
Antiguo 01/07/2011, 13:05
Avatar de maycolalvarez
Colaborador
 
Fecha de Ingreso: julio-2008
Ubicación: Caracas
Mensajes: 12.120
Antigüedad: 8 años, 8 meses
Puntos: 1530
Respuesta: Forzar guardar en cache

mmmm, hasta donde sé puedes dar un mayor tiempo de expiración a las cookies, pero no he probado con el contenido, pero no seria colocando un meta sino colocándolo directamente en el header de la respuesta HTTP y para ello necesitas del servidor, en este caso header() con php podría resultar.

sería el mismo caso para cuando obligas a expirar la caché desde el servidor para peticiones AJAX (XMLHttpRequest), pero al contrario de expirar, colocarías una fecha futura; OJO: no garantizo que funcione
__________________
¡Por favor!: usa el highlight para mostrar código
El que busca, encuentra...
  #3 (permalink)  
Antiguo 01/07/2011, 14:57
Avatar de emprear
Colaborador
 
Fecha de Ingreso: junio-2007
Ubicación: me mudé
Mensajes: 8.388
Antigüedad: 9 años, 9 meses
Puntos: 1567
Respuesta: Forzar guardar en cache

Siguiendo lo indicado por @maycoalvarez, hacerlo a traves del servidor, es la forma más indicada.
En el caso de Apache en particular, los módulos Expires y Headers, te van a permitir manejar como, que y durante cuanto tiempo cachear los diferentes componentes de tu web

Un ejemplo básico

Para cachear todas mis imágenes, multimedia y archivos de fuentes durante 1 año


Si lo haces con mod_headers (por extension de archivo)

Código Apache:
Ver original
  1. <IfModule mod_headers.c>
  2. <FilesMatch "\.(ico|gif|jpg|jpeg|png|flv|pdf|woff|eot|svg|ttf|flv|swf)$">
  3.   Header set Cache-Control "public, max-age=29030400"
  4. </FilesMatch>
  5. </IfModule>

Si lo haces con mode_expires y para diferentes fechas de expiración ,algo asi (por tipo de contenido)

Código Apache:
Ver original
  1. <IfModule mod_expires.c>
  2. ExpiresActive On
  3. ExpiresDefault A86400        
  4. ExpiresByType image/x-icon A2592000
  5. ExpiresByType application/x-javascript A2592000
  6. ExpiresByType text/css A2592000
  7. ExpiresByType image/gif A604800
  8. ExpiresByType image/png A604800
  9. ExpiresByType image/jpeg A604800
  10. ExpiresByType text/plain A604800
  11. ExpiresByType application/x-shockwave-flash A604800
  12. ExpiresByType video/x-flv A604800
  13. ExpiresByType application/pdf A604800
  14. ExpiresByType text/html A900
  15. </IfModule>

Los valores estan expresados en segundos (29030400 = 1 año)

Estos dos módulos no vienen habilitados por defecto en la instalación de Apache, pero dificilmente los proveedores de hosting actual, no tengan habilitado uno de ellos.

Una guía definitiva al tema, com ejemplos mucho más complejos en
http://www.askapache.com/htaccess/sp...s-caching.html

Saludos
__________________
La voz de las antenas va, sustituyendo a Dios.
Cuando finalice la mutación, nueva edad media habrá
S.R.
  #4 (permalink)  
Antiguo 01/07/2011, 16:38
Avatar de maycolalvarez
Colaborador
 
Fecha de Ingreso: julio-2008
Ubicación: Caracas
Mensajes: 12.120
Antigüedad: 8 años, 8 meses
Puntos: 1530
Respuesta: Forzar guardar en cache

@emperar: 100+, excelente ese aporte, y lo mejor es que solo depende de apache sin necesidad de usar script alguno del lado del servidor.
__________________
¡Por favor!: usa el highlight para mostrar código
El que busca, encuentra...
  #5 (permalink)  
Antiguo 04/07/2011, 01:01
 
Fecha de Ingreso: enero-2011
Ubicación: Barcelona
Mensajes: 79
Antigüedad: 6 años, 2 meses
Puntos: 1
Respuesta: Forzar guardar en cache

Lo siento mucho por mi ignorancia, pero és posible poner este codigo directamente en el html y que funcione? o donde se tiene que añadir?

Por lo que veo és mas sencillo el de mod_headers que sea uno o el otro tiene alguna repercusión? Ya veo que en el segundo puedes hacer que expliren cosas en diferentes momentos, pero eso no me interesa quiero que todo se borre de la cache igual.

Muchas gracias por todo
  #6 (permalink)  
Antiguo 04/07/2011, 09:40
Avatar de emprear
Colaborador
 
Fecha de Ingreso: junio-2007
Ubicación: me mudé
Mensajes: 8.388
Antigüedad: 9 años, 9 meses
Puntos: 1567
Respuesta: Forzar guardar en cache

lktmaster:
Las lineas de el código que propuse, deben incluirse (uno u otro método, no los dos) en un archivo llamado .htaccess, que debe de estar en la carpeta raiz de tu web, y que es visible desde tu programa de FTP , el cual ademas debe de tener habilitada la opción de "mostrar archivos ocultos", ya que justamente .htaccess es de este tipo.
todo esto, por supuesto para que el caso de que tu servidor Web use Apache como software (casi el 75% lo hacen)


Una vez que hagas las modificaciones, podés comprobar si esta funcionando, abriendo
about:cache en las barras de dirección de los diferentes browsers y verificando la fecha de expiración
Saludos
__________________
La voz de las antenas va, sustituyendo a Dios.
Cuando finalice la mutación, nueva edad media habrá
S.R.
  #7 (permalink)  
Antiguo 13/07/2011, 02:13
 
Fecha de Ingreso: enero-2011
Ubicación: Barcelona
Mensajes: 79
Antigüedad: 6 años, 2 meses
Puntos: 1
Respuesta: Forzar guardar en cache

Muchas gracias funciona perfectamente!!!
  #8 (permalink)  
Antiguo 20/10/2011, 13:24
Avatar de emprear
Colaborador
 
Fecha de Ingreso: junio-2007
Ubicación: me mudé
Mensajes: 8.388
Antigüedad: 9 años, 9 meses
Puntos: 1567
Respuesta: Forzar guardar en cache

Quiero hacer una ampliación al respecto, si estamos usando sesiones en nuestro php, las scripts no se cachearán, para forzarlo debemos usar
session_cache_limiter('public');
antes de
session_start();

más detalles en http://php.net/manual/es/function.se...he-limiter.php

Saludos
__________________
La voz de las antenas va, sustituyendo a Dios.
Cuando finalice la mutación, nueva edad media habrá
S.R.
  #9 (permalink)  
Antiguo 20/10/2011, 14:55
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.728
Antigüedad: 7 años, 10 meses
Puntos: 1512
Respuesta: Forzar guardar en cache

Para una explicacionsobre los tipos de cache pueden ver en ese mismo enlace que dejo emorear a este usuario y su aporte http://php.net/manual/es/function.se...iter.php#46827 Siempre lo recomiendo.
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos

Etiquetas: cache
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 20:47.