Foros del Web » Programando para Internet » Javascript »

problema con cache y javascript

Estas en el tema de problema con cache y javascript en el foro de Javascript en Foros del Web. muy buenas, tengo un problema bastante importante, el cual empieza asi: yo, desde un script, llamarlo index.php, llamo a una funcion que contiene todo el ...
  #1 (permalink)  
Antiguo 06/12/2010, 14:22
50l3r
Invitado
 
Mensajes: n/a
Puntos:
problema con cache y javascript

muy buenas, tengo un problema bastante importante, el cual empieza asi:

yo, desde un script, llamarlo index.php, llamo a una funcion que contiene todo el head del anterior script, ese head contiene scripts que varian segun la situacion.

Tengo un problema, el cual es que cuando cargo la pagina el script se queda cacheado, he intentado con estas lineas en el head:

<meta http-equiv='Pragma' content='no-cache'>
<meta http-equiv='expires' content='0'>

pero nada, que puede ser?

un saludo
  #2 (permalink)  
Antiguo 06/12/2010, 14:29
Avatar de maycolalvarez
Colaborador
 
Fecha de Ingreso: julio-2008
Ubicación: Caracas
Mensajes: 12.120
Antigüedad: 15 años, 9 meses
Puntos: 1532
Respuesta: problema con cache y javascript

¿estás usando ajax?: para eso utiliza header en php para deshabilitar la cache de la respuesta:

Código PHP:
Ver original
  1. header( "Expires: Mon, 26 Jul 1997 05:00:00 GMT" );  // disable IE caching
  2. header( "Last-Modified: " . gmdate( "D, d M Y H:i:s" ) . " GMT" );
  3. header( "Cache-Control: no-cache, must-revalidate" );
  4. header( "Pragma: no-cache" );
__________________
¡Por favor!: usa el highlight para mostrar código
El que busca, encuentra...
  #3 (permalink)  
Antiguo 06/12/2010, 14:31
Avatar de Panino5001
Me alejo de Omelas
 
Fecha de Ingreso: mayo-2004
Ubicación: -34.637167,-58.462984
Mensajes: 5.148
Antigüedad: 20 años
Puntos: 834
Respuesta: problema con cache y javascript

No se entiende bien tu problema. Si es que tu script queda cacheado pese a que has hecho un cambio, podrías resolverlo con algo como esto:
Código PHP:
<script type="text/javascript" src="scripts/index.js?<?php echo filemtime('scripts/index.js'?>"></script>
O quizá con una cadena pseudoaleatoria (poco recomendable):
Código PHP:
<script type="text/javascript" src="scripts/index.js?<?php echo md5(time()) ?>"></script>
  #4 (permalink)  
Antiguo 06/12/2010, 14:32
50l3r
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: problema con cache y javascript

no,uso javascript puro

¿con los headers esos en html valdria?
  #5 (permalink)  
Antiguo 06/12/2010, 14:33
50l3r
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: problema con cache y javascript

os pongo el codigo de la funcion

Código PHP:
<?php

    
function head($titulo,$mapa){
        if(
trim($titulo)==""){$titulo "Coloca un Titulo";}
        echo 
"    <head>
                        <meta http-equiv='Content-Type' content='text/html; charset=utf-8' />
                        
                        <meta http-equiv='Pragma' content='no-cache'>
                        <meta http-equiv='expires' content='0'>
                        
                        <title>$titulo</title>
                        
                        <link href='css/estilo.css' rel='stylesheet' type='text/css' />
                        <script type='text/javascript' src='js/aparecer.js'></script>
                        <script type='text/javascript' src='js/jquery.js'></script>
                        <script type='text/javascript' src='js/efectos.js'></script>
                        <script>
                            function refresh(){
                                window.parent.notify.location.reload();
                            }
                            setInterval('refresh()',5000);
                        </script>
                        <noscript><meta http-equiv='refresh' content='0;url=bloqueado.php'></noscript>"
;
                        
        if(
$mapa==|| $mapa ==2){
            echo     
"<script src='http://maps.google.com/maps?file=api&amp;v=2&amp;sensor=true&amp;key=ABQIAAAA-6rmF6NDNVKQHRT9czz-lxRGeST6DLj6nW5bdFQ2kVrIyvL4DxRSP3CWMk8RrUOIBJ9dZXbsBK2vfQ' type='text/javascript'></script>
                        <script type='text/javascript'>
                            function load() {
                                if (GBrowserIsCompatible()) {
                                    var map = new GMap2(document.getElementById('map'));
                                    map.setCenter(new GLatLng(43.33017262373211, -3.863067626953125), 10);
                                    map.addControl(new GLargeMapControl());
                                    var point = new GLatLng(43.419247677406794, -3.8307738304138184);
                                    map.addOverlay(new GMarker(point));"
;        
                                    
       if(
$mapa==1){echo "map.setMapType(G_HYBRID_MAP);";}elseif($mapa==2){echo "map.setMapType(G_NORMAL_MAP);";}
            echo 
"            }
                            }
                        </script>"
;
        }
                    
        echo 
" </head>";
    }
el script que me genera en caso de que mapa sea 1 o 2, se queda cacheado, con lo cual no me realiza la tarea adecuadamente
  #6 (permalink)  
Antiguo 06/12/2010, 14:35
Avatar de Panino5001
Me alejo de Omelas
 
Fecha de Ingreso: mayo-2004
Ubicación: -34.637167,-58.462984
Mensajes: 5.148
Antigüedad: 20 años
Puntos: 834
Respuesta: problema con cache y javascript

Cita:
Iniciado por 50l3r Ver Mensaje
no,uso javascript puro

¿con los headers esos en html valdria?
No, porque eso afecta la caché de la página actual, no evita el cacheo de fuentes externas como imágenes, scripts, css, swf, etc.

La solución es agregar una cadena diferenciadora al nombre del archivo js a cargar o cargarlos de manera dinámica.
  #7 (permalink)  
Antiguo 06/12/2010, 14:37
50l3r
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: problema con cache y javascript

entonces, la opcion anterior de los headers valdria?
  #8 (permalink)  
Antiguo 07/12/2010, 11:35
50l3r
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: problema con cache y javascript

alguien me puede concretar un pcoo por favor?

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 13:44.