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