• Ir al contenido
  • Ir a la navegación
  • Ir al buscador
 
Portada Boludo
ING English
Directorio WAP para móvil, Tablet, iPhone o Smartphone

Centro de Noticias de la Universidad de Oriente

Categorías

 

Inicio  |  Contacto  |  Posts  |  TIENDA PUBLISHOP  |  Sobre nosotros  |  Registro y Planes  |  Pagos  |  Donaciones

Ver Código QR de esta página

Campaña #AyudemosaYuli  |  Campaña #AyudemosaStephany.  |  ¿Interesado(a) en cursos y resolución de ejercicios de materias prácticas? Para más información, contáctenos por: Teléfono: +58 (412) - 8226575. WhatsApp y Telegram: +58 (426) - 6836955 o escriba al correo: [email protected]. Únete al grupo: SISTEMAS (UDOMO).

[»] **Musica para tu celular

WEB TRANSLATOR

LINK for English Language

Use this link for translate into English


+ Buscar en BolUDO

 

Propiedades onreadystatechange y readystate.

Tweet
 

domingo julio 10, 2016

10 - Propiedades onreadystatechange y readystate.


Dos propiedades fundamentales del objeto XMLHttpRequest son onreadystatechange y readyState.

El objetivo de cada una es:

  • onreadystatechange Almacena el nombre de la función que se ejecutará cuando el objeto XMLHttpRequest cambie de estado.
  • readyState Almacena el estado del requerimiento hecho al servidor, pudiendo ser:
    • 0 No inicializado (el método open no a sido llamado)
    • 1 Cargando (se llamó al método open)
    • 2 Cargado (se llamó al método send y ya tenemos la cabecera de la petición HTTP y el status)
    • 3 Interactivo (la propiedad responseText tiene datos parciales)
    • 4 Completado (la propiedad responseText tiene todos los datos pedidos al servidor)
  • Normalmente cuando creamos un objeto de la clase XMLHttpRequest inicializamos la propiedad onreadystatechange con el nombre de la función que procesará los datos enviados por el servidor:

    function cargarHoroscopo(url) 
    {
      if(url=='')
      {
        return;
      }
      conexion1=crearXMLHttpRequest();
      conexion1.onreadystatechange = procesarEventos;
      conexion1.open("GET", url, true);
      conexion1.send(null);
    }
    

    Por otro lado dentro de la función que previamente fue asignada a la propiedad onreadystatechange verificamos el estado de la propiedad readyState:

    function procesarEventos()
    {
      var detalles = document.getElementById("detalles");
      if(conexion1.readyState == 4)
      {
        detalles.innerHTML = conexion1.responseText;
      } 
      else 
      {
        detalles.innerHTML = 'Cargando...';
      }
    }
    

    Para ver el paso de estados del objeto XMLHttpRequest implementaremos una aplicación que calcule el cuadrado de un número que ingresamos por teclado (el cálculo se efectuará en el servidor) Y además mostraremos mediante un alert el estado actual de la propiedad readyState.

    pagina1.html>

    <!DOCTYPE html>
    <html>
    <head>
      <meta charset="utf-8">
      <title>Problema</title>
      <script src="funciones.js" ></script>
    </head>
    <body>
      <form action="pagina1.php" method="post" id="formulario">
        Ingrese nro:<input type="text" name="nro" id="nro" size="10"><br>
        <input type="submit" value="Calcular el cuadrado" id="enviar">
      </form>
      <div id="resultados"></div>
    </body>
    </html>
    

    funciones.js

    addEventListener('load',inicializarEventos,false);
    
    function inicializarEventos()
    {
      var ref=document.getElementById('formulario');
      ref.addEventListener('submit',enviarDatos,false);
    }
    
    function enviarDatos(e)
    {
      e.preventDefault();
      enviarFormulario();
    }
    
    var conexion1;
    function enviarFormulario() 
    {
      conexion1=new XMLHttpRequest();
      conexion1.onreadystatechange = procesarEventos;
      var num=document.getElementById('nro').value;
      alert('Valor de la propiedad readyState:'+conexion1.readyState);
      conexion1.open('GET','pagina1.php?numero='+num, true);
      conexion1.send();
    }
    
    function procesarEventos()
    {
      alert('Valor de la propiedad readyState:'+conexion1.readyState);
      var resultados = document.getElementById("resultados");
      if(conexion1.readyState == 4)
      {
        resultados.innerHTML = conexion1.responseText;
      } 
      else
        if (conexion1.readyState==1 || conexion1.readyState==2 || conexion1.readyState==3)
        {
          resultados.innerHTML = 'Procesando...';
        }
    }
    

    Como podemos observar si accedemos a la propiedad readyState antes de llamar a los métodos open y send la misma almacena el valor cero:

      conexion1=new XMLHttpRequest();
      conexion1.onreadystatechange = procesarEventos;
      var num=document.getElementById('nro').value;
      alert('Valor de la propiedad readyState:'+conexion1.readyState); //Muestra cero
    

    Cuando llamamos al método open se ejecuta por primera vez la función que inicializamos en la propiedad onreadystatechange, al mostrar la propiedad readyState veremos que almacena un uno:

      conexion1.open('GET','pagina1.php?numero='+num, true);
    

    Cuando llamamos al método send se ejecuta por segunda vez la función que inicializamos en la propiedad onreadystatechange, al mostrar la propiedad readyState veremos que continua con el valor uno.

    Luego la función:

    function procesarEventos()
    {
      alert('Valor de la propiedad readyState:'+conexion1.readyState);
      var resultados = document.getElementById("resultados");
      if(conexion1.readyState == 4)
      {
        resultados.innerHTML = conexion1.responseText;
      } 
      else
        if (conexion1.readyState==1 || conexion1.readyState==2 || conexion1.readyState==3)
        {
          resultados.innerHTML = 'Procesando...';
        }
    }
    

    mostrará los valores 2,3 y 4.

    Recordemos:

    • 0 No inicializado (el método open no a sido llamado)
    • 1 Cargando (se llamó al método open)
    • 2 Cargado (se llamó al método send y ya tenemos la cabecera de la petición HTTP y el status)
    • 3 Interactivo (la propiedad responseText tiene datos parciales)
    • 4 Completado (la propiedad responseText tiene todos los datos pedidos al servidor)

    pagina1.php

    <?php
    header('Content-Type: text/html; charset=utf-8');
    $cuadrado=$_REQUEST['numero']*$_REQUEST['numero'];
    echo $cuadrado;
    ?>
    


    Problema resuelto.


    Implementar una aplicación que calcule el cuadrado de un número que ingresamos por teclado. Y además mostrar mediante un alert el estado actual de la propiedad readyState del objeto XMLHttpRequest.
    pagina1.html



    Ejecutar ejemplo



    funciones.js




    pagina1.php


    Retornar

— @bolUDOoficial

— Síguenos en Twitter@bolUDOoficial

Categorías: #Ajax, #


[0] Atrás | Directorio
« Inicio
Apps Infoudo
Apps Infoudo ¡Descarga el icono directo en el menú de tu equipo!
[»] Las mejores Apps para tu celular
[»] Imágenes Gratis


Comenta o lee lo que otros opinan

COMPÁRTELO:

Indica que te gusta y comparte

Me Gusta :)Facebook Tuiteame :)Twitter .WhatsApp .Telegram . LinkedIn

También te puede interesar:

Validación de la existencia de un nombre de usuario en forma asincrónica (AJAX)
Pizarra interactiva multiusuario
De JSON a PHP (utilizando la función json_decode)
De JSON a JavaScript (utilizando utilizando la función parse)
De JavaScript a JSON (utilizando la función stringify del objeto JSON)
De PHP a JSON (utilizando la función json_encode)
Recuperar datos del servidor en formato JSON
Qué es JSON?
Encuenta con AJAX
Autocompletar un control de tipo text


« Recuperando datos mediante la propiedad responseXML del objeto XMLHttpRequest  |  Propiedades status y statusText. »
 
Apps Infoudo
 
Buscador:
Powered by Google:


Web móvil
Imágenes
La Web

 

Síguenos por RSS


Puedes leerlos mediante el navegador Firefox, lectores de noticias en la computadora o el móvil o usando el servicio de Feedburner de Google para recibir las notificaciones por correo electrónico.
RSS - Suscribirse usando Feedburner de Google

email Recibir las nuevas publicaciones de Boludo por email

Atom


»Ir a URL
.....
Registra Gratis Tu Negocio
....
Sugerir un nuevo sitio WAP

...
¡Bloguea Ya!

..
Registro de Profesionales(Abogados, escritores, doctores, licenciados, ingenieros, etc.)
.
Soporte

Síguenos en las redes sociales

Síguenos en Facebook facebook.com/boludooficial Síguenos en Twitter @bolUDOoficial Síguenos en Instagram @boludooficial Síguenos en Telegram t.me/Boludooficial
Síguenos en WhatsApp BolUDOoficial Síguenos en YouTube youtube.com/@boludo.oficial
Síguenos en Facebook facebook.com/SergioAlemanFans Síguenos en Twitter @SergioAleman1 Síguenos en Instagram @sergioalemanfans
Síguenos en WhatsApp wa.me/qr/Y7Q232VLZPR5O1 Síguenos en Tiktok @sergioalemanoficial Síguenos en Tiktok @sergioalemanfans
Síguenos en Telegram t.me/SergioAlemanOficial Síguenos en YouTube youtube.com/@sergioaleman
Síguenos en Facebook facebook.com/INFOUDO.OFICIAL Síguenos en Twitter @infoudomon Síguenos en Instagram @infoudooficial Síguenos en Telegram t.me/Infoudooficial
Síguenos en Facebook facebook.com/tuinfou Síguenos en Twitter @infoudomonagas
Síguenos en WhatsApp INFO UDO Síguenos en YouTube youtube.com/@infoudooficial

Mis cuentas sociales

FB
Twitter
Pinterest
Instagram
Otras

Móvil: (0426 683 6955 - 0412 8226575) - E-mail: [email protected] - [email protected] - WhatsApp: +58 (0426) 683.69.55


Copyscape
Volver arriba

Protocolo  |  Mapa del Sitio  |  Report Abuse - DMCA  |  Términos y Condiciones  |  Ayuda  |  Privacidad de Datos  |  Política de Cookies  |  Reportar un bug  |  Licencia: CC BY-NC-ND 3.0

Copyright ©2023 Boludo. Todos los derechos reservados. Diseñado y Desarrollado por Sergio Alemán Mi perfil en GitHub


SUBIR