Foros del Web » Programando para Internet » PHP »

Evitar que se guarde un Flash en cache

Estas en el tema de Evitar que se guarde un Flash en cache en el foro de PHP en Foros del Web. Tengo un codigo, que carga las ultimas imagenes de mi Galeria y genera un XML y lo manda a un flash, pero si subo imagenes ...
  #1 (permalink)  
Antiguo 06/03/2005, 22:21
Avatar de tyo100  
Fecha de Ingreso: febrero-2005
Ubicación: Monterrey, NL
Mensajes: 475
Antigüedad: 19 años, 2 meses
Puntos: 1
Pregunta Evitar que se guarde un Flash en cache

Tengo un codigo, que carga las ultimas imagenes de mi Galeria y genera un XML y lo manda a un flash, pero si subo imagenes estas no se van actualizando ya que el flash se queda en el cache del IE, alguna idea para que el flash no se quede en cache.

http://www.tyo100.info/foros/newpics.php

De hecho podria ser un HTML pero para futuras modificaciones...

Código PHP:
<?php
echo <<< EOT
<td>    
<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,0,0" width="100%" height="200" align="middle">
      <param name="movie" value="viewer.swf" />
      <param name="quality" value="high" />
      <param name="scale" value="noscale" />
      <param name="BGCOLOR" value="#FFCC99" />
      <param name=FlashVars value="xmlDataPath=lastpicsxml.php">
      <embed src="viewer.swf" FlashVars="xmlDataPath=lastpicsxml.php" width="100%" height="200" align="middle" quality="high" scale="noscale" bgcolor="#FFCC99" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" />    
</object>
</td>
EOT;
?>
  #2 (permalink)  
Antiguo 07/03/2005, 08:26
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Aunque la "salida" de ese objeto para HTML que al final es una llamada a una película Flash .. el tema concreto del control del caché no lo controla PHP ..

En su defecto .. PHP puede "lanzar" cabeceras HTTP (al igual que en HTML sólo con sus <meta ...> podrías hacerlo) para control del caché .. vía la función header():

www.php.net/header

Pero, el protocolo HTTP con su control de caché no controla el tema de imagenes ni objetos (o por lo menos si miras en tus "archivos temporarles" ... los .html no están pero sí las imagenes y otros ..).

Una técnica que se suele usar es renombrar tu archivo dinámicamente .. pero, eso no evita el caché pero si que "fuerza" a tu navegador a que tome otra imagen/archivo .. ocasionando duplicados en tus "archivos temporales de internet" .. pues, el nombre es siempre diferente.

No sé con qué fin no deseas el chaché .. pero si deseas más información al respecto .. consulta en foros de HTML por el tema del control del caché .. todo eso es parte del protocolo HTTP no de PHP (ni de HTML aunque con ambos lenguajes lo puedes "gestionar").

Un saludo,
  #3 (permalink)  
Antiguo 07/03/2005, 08:40
Avatar de tyo100  
Fecha de Ingreso: febrero-2005
Ubicación: Monterrey, NL
Mensajes: 475
Antigüedad: 19 años, 2 meses
Puntos: 1
Motivo

La razon por la que quiero hacer esto, es por ejemplo mi galeria agrego nuevas fotos y pues, no se actualiza, ya sabia eso de los meta, para no hacer cache, pero en si no se hace cache de toda la pagina y yo no queria hacer cache solo de 1 objeto.
  #4 (permalink)  
Antiguo 07/03/2005, 08:43
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Bueno .. lo dicho .. PHP no controla esos temas .. Intenta enfocar tu pregunta en otros foros: (x)HTML, Flash .. etc ..

Un saludo,
  #5 (permalink)  
Antiguo 07/03/2005, 09:22
cmc
 
Fecha de Ingreso: febrero-2003
Ubicación: Capital
Mensajes: 1.317
Antigüedad: 21 años, 2 meses
Puntos: 1
Una pregunta sobre esto, continuando el ejemplo que da tyo100 si el swf se nutre de un archivo php ¿no alcanza esto para que el navegador este forzado si o si a ir a buscar informacion al server?, disculpen si estoy diciendo una burrada pero no domino mucho php y esta es una duda que tengo hace rato.
__________________
Claudio Caldareri
diseñador Multimedial
www.disemedios.com.ar
  #6 (permalink)  
Antiguo 07/03/2005, 09:28
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Al final queda para tu navegador la misma página (de mismo nombre) que contiene las mismas llamadas a objetos/imagenes .. de mismo nombre .. por eso se identifica como "que la tengo en la caché" y entrega esa tu navegador en lugar de ir a buscar las imagenes y demás contenido actualizado en el servidor.

Por eso hacía la sugerencia de que si cambias el nombre de tus imagenes/archivos dinámicamente ..siempre serán distintos cara a tu navegador .. pero llenarás los "archivos temporales de internet" rápidamente de versiones duplicadas de tus imagenes/objetos ...

Un saludo,
  #7 (permalink)  
Antiguo 07/03/2005, 10:43
Avatar de tyo100  
Fecha de Ingreso: febrero-2005
Ubicación: Monterrey, NL
Mensajes: 475
Antigüedad: 19 años, 2 meses
Puntos: 1
Si se pudo

Pues a mi me sirvio esto, busque en el faq encontre como hacer para que no se carguen las imagenes y lo adapte a mis necesidades

cache.php
Código PHP:
<?php

$path 
"./";
header("Content-Type: application/x-shockwave-flash");
header"Expires: Mon, 8 Sep 2003 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" ); 
@
readfile($path.$_GET['flash']); 

?>
newpics.php

Código PHP:
<?php 
echo <<< EOT 
<td>     
<
object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,0,0" width="100%" height="200" align="middle"
      <
param name="movie" value="cache.php?flash=viewer.swf /> 
      <param name="
quality" value="high" /> 
      <param name="
scale" value="noscale" /> 
      <param name="
BGCOLOR" value="#FFCC99" /> 
      
<param name=FlashVars value="xmlDataPath=lastpicsxml.php"
      <
embed src="cache.php?flash=viewer.swf" FlashVars="xmlDataPath=lastpicsxml.php" width="100%" height="200" align="middle" quality="high" scale="noscale" bgcolor="#FFCC99" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" />     
</
object
</
td
EOT
?>
Aunque aun sigo probando, pero donde lo he usado si me ha funcionado
  #8 (permalink)  
Antiguo 07/03/2005, 11:51
 
Fecha de Ingreso: diciembre-2003
Mensajes: 1.583
Antigüedad: 20 años, 3 meses
Puntos: 13
Lo que debes hacer es que cuando el flash llame al archivo XML, no lo encuentre en la caché y forzarlo a sacarlo directo desde el servidor. Para eso, en la URL con que cargas el XML debes agregarle una variable con un valor aleatorio, para que siempre esté llamando a una url diferente:

(Esto es en el flash)
var t = new Date().getTime();
var path = "archivo.xml?t="+t;

Eso siempre te va adar una url distinta, por lo que es practicamente imposible que la pueda encontrar en el caché
__________________
El conocimiento es libre: Movimiento por la Devolución
  #9 (permalink)  
Antiguo 07/03/2005, 12:17
Avatar de tyo100  
Fecha de Ingreso: febrero-2005
Ubicación: Monterrey, NL
Mensajes: 475
Antigüedad: 19 años, 2 meses
Puntos: 1
Ok

Deja pruebo con eso tambien, pero yo creo que eso me ha de servir para el XML
  #10 (permalink)  
Antiguo 07/03/2005, 13:36
 
Fecha de Ingreso: diciembre-2003
Mensajes: 1.583
Antigüedad: 20 años, 3 meses
Puntos: 13
Basta con que desde flash vayas cargando el XML utilizando una URL disitinta, así siempre irás cargando la última actualización del XML, por consiguiente, vas a estar cargando unal ista de fotos siempre actualizada. No necesitas nada más.
__________________
El conocimiento es libre: Movimiento por la Devolución
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.
Tema Cerrado




La zona horaria es GMT -6. Ahora son las 08:02.