Ya tengo mi parte de AJAX funcionando, sin embargo me quedan varias dudas. Antes había visto un intento de crear un objeto para cada navegador. Con el siguiente código ya funciona para todos (almenos firefox, IE y chrome)? Como es eso?
Código:
Otra cosa... Esto es de JS, pero bueno. Qué significa el "?" cuando hacemos "window.XMLHttpRequest?new XMLHttpRequest():" ?function getdata(what, where) { // get data from source (what) try { xmlhttp = window.XMLHttpRequest?new XMLHttpRequest(): new ActiveXObject("Microsoft.XMLHTTP"); } catch (e) { alert("Error loading data. Try another browser, please. Thank you for your patience."); }
Y luego por último... Hay alguna línea del código que no entiendo:
Código:
Entiendo que innerHTML es para qué queremos cargar mientras devolvemos lo buscado. Pero no entiendo el:document.getElementById(where).innerHTML ="<center><img src='ajax-loader.gif'></center>"; // Gif while loading data ajaxdestination=where; xmlhttp.onreadystatechange = lanzamos_funcion; // when request finished, call the function to put result to destination DIV xmlhttp.open("GET", what); xmlhttp.send(null); return false; } function lanzamos_funcion() { // put data returned by requested URL to selected DIV if (xmlhttp.readyState == 4) if (xmlhttp.status == 200) document.getElementById(ajaxdestination).innerHTML =xmlhttp.responseText; }
onreadystatechange = lanzamos_funcion; //onready... Es predefinido?
xmlhttp.open("GET", what); //Podria ser POST y concatenar algo a la URL? Sólo lee, o ejecuta la página "what" y el resultado por pantalla es lo que devuelve?
xmlhttp.send(null); // Y esto?
ni la funcion "lanzamos_funcion". // Estado 4 significa que hemos terminado la petición... de qué? y status 200??
Cómo veis ya me funciona pero me gustaría entender claramente los conceptos :) Mil gracias!