Traducción de Artículo de Ajax XV
Inconsistencia de navegadores
Una vez que tenes un entendimiento básico de este proceso, trata de acceder desde varios navegadores diferentes. Deberías notar algunas inconsistencias en como estos estados ready son manipulados. Por ejemplo en Firefox 1.5, ves los siguientes estados ready:
- 1
- 2
- 3
- 4
- 2
- 3
- 4
Por ejemplo, cuando se usa Opera 8.5, las cosas son todavía peores con la salida de los estados ready:
- 3
- 4
- 1
- 2
- 3
- 4
Luego yo miro el lado de la respuesta.
Información de respuesta bajo el microscopio
Una vez que entiendas los varios estados ready que ocurren durante una petición, estás listo para mirar otra pieza importante del objeto XMLHttpRequest --la propiedad responseText. Recuerda del último artículoque esta es la propiedad usada para obtener la información del servidor. Una vez que el servidor ha terminado de procesar la petición, situa toda información que se necesita para responder la petición en el responseText de la petición. Luego tu función de rellamada puede usar esa información, como se ve en el listing1 y 4.
Listing 4. Usar la respuesta del servidor
function updatePage() {
if(request.readyState == 4) {
var newTotal = request.responseText;
var totalSoldEl = document.getElementById("total-sold");
var netProfitEl = document.getElementById("net-profit");
replaceText(totalSoldEl, newTotal);
/*Descubrir la nueva ganancia neta*/
var boardCostEl = document.getElementById("board-cost");
var boardCost = getText(boardCostEl);
var manCostEl = document.getElementById("man-cost");
var manCost = getText(manCostEl);
var profitPerBoard = boardCost - manCost;
var netProfit = profitPerBoard * newTotal;
/*Actualizar la ganancia neta el el formulario de ventas*/
netProfit = Math.round(netProfit *100)/100;
replaceText (netProfitEl, netProfit);
}
}
El Listing 1 es bastante simple; el Listing 4 es un poco mas complicado, pero para empezar, ambos controlan el estado ready y luego toman el valor (o valores) de la propiedad responseText.
Visualizar el texto de respuesta durante una petición
Como el estado ready, el valor de la propiedad responseText cambia durante el ciclo de vida de la petición. Para ver esto en acción, usa el código como el que se muestra en el listing 5 para probar el texto de respuesta de una petición, tal como los estados ready.
Listing 5. Probar la propiedad responseText
function updatePage(){
//Mostrar el estado ready actual
alert("updatePage() llamada con el estado ready en " + request.readyState + " y un texto de respuesta de '" + request.responseText + "'");
}
Ahora abre tu aplicación Web en un navegador y activa tu petición. Para obtener lo maximo de este código, usa Firefox o Internet Explorer ya que estos navegadores reportan todos los estados posibles durante una petición. Con un estado ready en 2, por ejemplo, la propiedad responseText es indefinida (ver figura 3) y deberías ver un error si la consola JavaScript está abierta tambien.
Figura 3. Texto de respuesta con un estado ready en 2
Con el estado ready en 3 sin embargo, ha colocado un valor en la propiedad responseText, al menos en este ejemplo (ver figura 4).
Figura 4: Texto de respuesta con un estado ready en 3Vas a descubrir que tu respuesta en el estado ready 3 varía de scritp a script, servidor a servidor y navegador a navegador. SIn embargo esto aun es increiblemente util para eliminar errores de tu aplicación.
Etiquetas: Ajax
2 Decà algo:
What a great site, how do you build such a cool site, its excellent.
»
Your website has a useful information for beginners like me.
»
Publicar un comentario
<< Casa?