Ver Mensaje Individual
  #1 (permalink)  
Antiguo 19/09/2008, 13:20
xavixavi
 
Fecha de Ingreso: septiembre-2008
Mensajes: 4
Antigüedad: 16 años, 3 meses
Puntos: 0
Pregunta Varios Post Request AJAX seguidos

Hola!

Tengo un código javascript que conseguí hace unos días y he estado trasteando un poco con él. Se trata del "makePostrequest" de AJAX que he visto ya en varios sitios y os cuelgo el código javascript tal como lo tengo:

Código HTML:
var http_request = false;
   function makePOSTRequest(url, parameters, etiquetadiv) {
      http_request = false;
      if (window.XMLHttpRequest) { // Mozilla, Safari,...
         http_request = new XMLHttpRequest();
         if (http_request.overrideMimeType) {
         	// set type accordingly to anticipated content type
            //http_request.overrideMimeType('text/xml');
            http_request.overrideMimeType('text/html');
         }
      } else if (window.ActiveXObject) { // IE
         try {
            http_request = new ActiveXObject("Msxml2.XMLHTTP");
         } catch (e) {
            try {
               http_request = new ActiveXObject("Microsoft.XMLHTTP");
            } catch (e) {}
         }
      }
      if (!http_request) {
         alert('No s\'ha pogut crear la instància XMLHTTP');
         return false;
      }
	  
      http_request.onreadystatechange = function(){
	  if (http_request.readyState == 4) {
         if (http_request.status == 200) {
            //alert(http_request.responseText);
            result = http_request.responseText;
			document.getElementById('loading_coment').style.visibility="hidden";
			document.getElementById(etiquetadiv).innerHTML = result;
         } else {
            alert('No s\'ha carregat correctament el fitxer.');
         }
      }
	  };
	    
      http_request.open('POST', url, true);
      http_request.setRequestHeader("Content-type", "application/x-www-form-urlencoded; charset=ISO-8859-1");
      http_request.setRequestHeader("Content-length", parameters.length);
      http_request.setRequestHeader("Connection", "close");
      http_request.send(parameters);
   }

function get_comentaris() {
document.getElementById('loading_coment').style.visibility="visible";
	var etiquetadiv = "ajax_comentaris";
	  
	  var poststr = "accio=afegir&comentari=" + encodeURI( frmentrada.comentari.value ) +
					"&data=" + encodeURI( frmentrada.data.value );
	  frmentrada.comentari.value="";
      makePOSTRequest('enviacoment.php', poststr, etiquetadiv);
}
Básicamente, como se puede ver, la función get_comentaris(); carga los datos de un formulario y los manda a través de javascript a un div de la página. Funciona perfectamente en Firefox 3 y Ie 6.

Mi quebradero de cabeza desde hace unos días es cómo conseguir realizar la actualización tanto del div "ajax_comentaris" como de otro llamado "ultimscomentaris", que no es más que un módulo que muestra los últimos comentarios.

Si se añade otro makePostrequest debajo del actual, es curioso porque el envio de la página se realiza en el segundo Div, pero con los resultados del primero. Supongo que debe haber una forma de terminar el request, para poder iniciar otro. También he probado con un contador a tiempo x pero no funciona.

Me gustaría saber como se resuelve esto modificando el código, sin recurrir a liberías de estas que corren por internet, que no me interesan, almenos para las pruebas que voy haciendo.

Alguien me puede ayudar? Mil Gracias por adelantado!!!