Ver Mensaje Individual
  #7 (permalink)  
Antiguo 16/10/2006, 18:29
Anarko
 
Fecha de Ingreso: febrero-2004
Mensajes: 1.987
Antigüedad: 20 años, 10 meses
Puntos: 22
Hola, la verdad es que no quiero que la "respuesta AJAX", (en realidad la respuesta del server), se quede en la cache por varios motivos...

Por ello a la respuesta le coloco cabeceras que indican al server que NO guarde la CACHE, (únicamente por ello van las lineas que contienen header).

Bueno, también yo requiero CORRER JAVA luego del AJAX.

Gracias a SARUMAN ahora puedo hacerlo, busque varias veces y no entendia bien cómo hacerlo hasta que SARUMAN nos dijo cómo.

Para correr solo UNA vez el XMLHttpRequest lo que hago es generar UNA SOLA SALIDA de datos desde el server, colocando el JAVASCRIPT al principio y final de los caracteres HTML

Luego con JS divido la cadena con split que es una propiedad de JS, (busca en la red y veras + detalles).

Luego, como a veces se requiere JS despues del html, tonces vuelvo a evaluar or segunda vez el codigo JS, (si existe).

Ay bueno, espero que el codigo se explique por si mismo... sino seguro SARUMAN les ayuda en lo que no les quede claro.

Aqui queda mi codigo:

Parte JS, que procesa el JS y que es el AJAX propiamente dicho:
Código PHP:
if(req.status==200){
    
JAVA=req.responseText.split('HTML');
    if(
JAVA.length>1){
        eval(
JAVA[0]);
        
info.innerHTML=JAVA[1];
        if(
JAVA[2].length!='undefined')eval(JAVA[2]);
        }
        else 
info.innerHTML=JAVA[0];
    } 
Y ahora la parte del servidor, en mi caso con PHP, pero da igual si es ASP, JSP, PERL, etc..
Código PHP:
    header('Content-Type: text/html; charset=ISO-8859-1');
    
header('Cache-Control: no-cache, must-revalidate');
    
header('Expires: Mon, 26 Jul 1997 05:00:00 GMT');
    echo 
'alert("Hola Mundo 1");';
    echo 
'HTML';
    echo 
'<p style="border:1px dashed red;">info</p>';
    echo 
'HTML';
    echo 
'alert("Hola Mundo 2");'
Espero halla quedado "entendible", simplemente con JS dividimos la respuesta del server por los caracteres HTML, y cada una de las partes JAVASCRIPT las evaluamos con eval como nos ha enseñado SARUMAN