Foros del Web » Programando para Internet » PHP »

Como hacer cache a partes de una página

Estas en el tema de Como hacer cache a partes de una página en el foro de PHP en Foros del Web. Hola a todos! Miren: Uso este caché en mis páginas. http://blog.unijimpe.net/cache-de-paginas-en-php/ (para que php no tenga que recopilar la información cada vez que muestra la ...
  #1 (permalink)  
Antiguo 24/10/2011, 20:25
 
Fecha de Ingreso: enero-2008
Mensajes: 36
Antigüedad: 16 años, 3 meses
Puntos: 1
Pregunta Como hacer cache a partes de una página

Hola a todos!

Miren: Uso este caché en mis páginas. http://blog.unijimpe.net/cache-de-paginas-en-php/
(para que php no tenga que recopilar la información cada vez que muestra la página.)

Pero tiene un problema:
Guarda toda la pagina html completa.
hay que usarlo desde el inicio del archivo
<?php include("cache.start.php"); ?>
<html>


hasta el final
</html>
<?php include("cache.end.php"); ?>



Yo quiero utilizarlo haciendo caché en solo una parte o en partes dentro del body

¿Se puede?


Desde ya, muchas gracias!!
  #2 (permalink)  
Antiguo 24/10/2011, 20:55
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Como hacer cache a partes de una página

Cita:
Iniciado por matiastv Ver Mensaje
[...] ¿Se puede? [...]
En lugar de preguntar deberías experimentar, así te ahorras tiempo y avanzas en tu trabajo.

Lo que resulte mejor vuelves y nos comentas, ¿te parece bien?
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 25/10/2011, 17:20
 
Fecha de Ingreso: enero-2008
Mensajes: 36
Antigüedad: 16 años, 3 meses
Puntos: 1
Respuesta: Como hacer cache a partes de una página

Por supuesto que probé!.
Y utilizando ese script, lo maximo que se puede lograr es que te imprima 2 veces el html completo.
Pensé que alguien podia comentar algo para agregarle o cambiarle para hacer el caché parcialmente.
  #4 (permalink)  
Antiguo 28/10/2011, 08:59
 
Fecha de Ingreso: enero-2008
Mensajes: 36
Antigüedad: 16 años, 3 meses
Puntos: 1
Respuesta: Como hacer cache a partes de una página

Repito.

Hola a todos!
Uso este caché en mis páginas. http://blog.unijimpe.net/cache-de-paginas-en-php/
(para que php no tenga que recopilar la información cada vez que muestra la página.)

Pero tiene un problema:
Guarda toda la pagina html completa.
hay que usarlo desde el inicio del archivo
<?php include("cache.start.php"); ?>
<html>


hasta el final
</html>
<?php include("cache.end.php"); ?>



Yo quiero utilizarlo haciendo caché en solo una parte o en partes dentro del body

lo maximo que se puede lograr es que me imprima 2 veces el html completo.
¿como editar ese script para que pueda usarse sin hacer el caché de el html completo?

Desde ya, muchas gracias!!
  #5 (permalink)  
Antiguo 28/10/2011, 09:31
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Como hacer cache a partes de una página

Cita:
Iniciado por matiastv Ver Mensaje
[...] ¿como editar ese script para que pueda usarse sin hacer el caché de el html completo? [...]
Repito.

Ah no, es la primera vez que lo digo.

¿Quieres que adivinemos el código de dichos scripts o que hay que hacer?
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #6 (permalink)  
Antiguo 31/10/2011, 11:05
 
Fecha de Ingreso: enero-2008
Mensajes: 36
Antigüedad: 16 años, 3 meses
Puntos: 1
Respuesta: Como hacer cache a partes de una página

Pueden descargarlo desde aqui:
http://www.box.net/shared/arfzip740w


Explicación aquí: http://blog.unijimpe.net/cache-de-paginas-en-php/



Para hacer cache de nuestras páginas utilizaremos dos archivos cache.start.php que verificará si existe una copia en cache de la pagina en cuyo caso lo mostrará al usuario y cache.end.php que se encargará de crear el cache del página seleccionada.

Escribiendo los scripts
Entonces lo primero es crear el archivo cache.start.php en donde primero definimos la carpeta donde guardaremos los archivos de cache, el tiempo de expiración de estos archivos y la extensión de estos archivos. El siguiente paso es crear el nombre del archivo, esto lo hacemos basado en el nombre original del archivo y aplicándole encriptación MD5.

01.<?php
02.// Settings
03.$cachedir = 'cache/'; // directorio de cache
04.$cachetime = 86400; // duración del cache
05.$cacheext = 'cache'; // extensión de cache
06.// script a procesar
07.$cachepage = $_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'];
08.$cachefile = $cachedir.md5($cachepage).'.'.$cacheext;
09.// calculamos el tiempo del cache
10.if (@file_exists($cachefile)) {
11. $cachelast = @filemtime($cachefile);
12.} else {
13. $cachelast = 0;
14.}
15.@clearstatcache();
16.// Mostramos el archivo si aun no vence
17.if (time() - $cachetime <$cachelast) {
18. @readfile($cachefile);
19. exit();
20.}
21.ob_start();
22.?>
Notar que si el archivo aun no ha expirado, le mostramos al usuario la copia que tenemos en cache y cancelamos la ejecución del resto del script.

El siguiente paso es crear el archivo cache.end.php, este archivo se ejecutará si y solo asi el script llega al final, lo cual indica que aun no tiene una copia en cache, para ello creamos el archivo y dentro del mismo escribimos el contenido del buffer.

01.// Generamos el nuevo archivo cache
02.$fp = @fopen($cachefile, 'w');
03.// guardamos el contenido del buffer
04.@fwrite($fp, ob_get_contents());
05.@fclose($fp);
06.ob_end_flush();
Modo de Utilización
El uso de este método de cache es sencillo, primer debemos crear la carpeta donde se guardarán los archivos de cache y luego incluir cache.start.php al inicio y cache.end.php al final del script a procesar.

01.<?php include("cache.start.php"); ?>02.<html>
03....
04.</html>
05.<?php include("cache.end.php"); ?>
  #7 (permalink)  
Antiguo 31/10/2011, 11:33
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Como hacer cache a partes de una página

Mira, necesitas cambiar tus formas de buscar ayuda, porque eso de colocar archivos para descargar es mala idea. Muchos de nosotros vemos con molestia tener que descargar un archivo para analizar un problema, que en el fondo no nos corresponde.

A simple vista viendo tu script, está diseñado solo para ser usado con páginas completas y no por partes. Por lo mismo, lo ideal es que busques en Internet algún script o librería que te sirva para hacer cache parcial.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.

Etiquetas: cache, cache.end, cacheado
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 00:55.