[Php-avanzado] otra de ajax
Leonardo Tadei - Pegasus Tech Supply
leonardot en pegasusnet.com.ar
Lun Mayo 27 19:38:43 ART 2013
Hola Ariel,
El lun, 27-05-2013 a las 18:24 -0300, Ariel Fernández escribió:
> Leo, otra vez yo ! el problema que tiene el código es que el
> xmlHttp.readyState se queda en 1 cuando la función updatePage verifica
> su estado, por eso no me actualiza los datos en la página, porque no
> entra nunca en el if xmlHttp.readyState == 4.
Bueno, pero salvo que lo pises con otra petición el valor de readyState
tiene que ir cambiando. De hecho, si no cambiara, no recibirías nada
como respuesta...
> Lo que no sé es por qué devuelve el estado "Cargando"....si al ratito
> puedo ver en el responseText que ahi está lo que necesito !!
Tal vez simplemente lo estés debuggeando mal: los cambios de estado por
evento se ven solo adentro del propio evento que los genera.
Lo de que Apache bajo MS Windows tarde 1 segundo en responder no está
mal... para más velocidad tendrías que usar un sistema operativo que no
sea de escritorio, como por ejemplo GNU/Linux.
Llevate el código al curso y lo desarmamos en clase para ver qué es lo
que hace!
>
> Mirá, ésto es lo que me muestra el depurador nativo de Firefox que me
> recomendaste:
>
>
> [18:15:40.351] POST
> http://localhost/Avanzado/ejercicios_clase_5/leeProv.php [HTTP/1.1 200
> OK 1013ms]
>
>
>
> Cabeceras de la respuesta
> Δ1013ms
>
> X-Powered-By:PHP/5.4.3Server:Apache/2.4.2 (Win64)
> PHP/5.4.3Keep-Alive:timeout=5, max=97Date:Mon, 27 May 2013 21:15:40
> GMTContent-Type:text/htmlContent-Length:1034Connection:Keep-Alive
>
>
>
>
>
> Cuerpo de la respuesta
> Δ0ms
>
> <select name="" id="">
> <option value="">Seleccione provincia...</option>
> <option value="1">Buenos Aires</option>
> <option value="2">Buenos Aires-GBA</option>
> <option value="3">Capital Federal</option>
> <option value="4">Catamarca</option>
> <option value="5">Chaco</option>
> <option value="6">Chubut</option>
> <option value="7">Córdoba</option>
> <option value="8">Corrientes</option>
> <option value="9">Entre RÃos</option>
> <option value="10">Formosa</option>
> <option value="11">Jujuy</option>
> <option value="12">La Pampa</option>
> <option value="13">La Rioja</option>
> <option value="14">Mendoza</option>
> <option value="15">Misiones</option>
> <option value="16">Neuquén</option>
> <option value="17">RÃo Negro</option>
> <option value="18">Salta</option>
> <option value="19">San Juan</option>
> <option value="20">San Luis</option>
> <option value="21">Santa Cruz</option>
> <option value="22">Santa Fe</option>
> <option value="23">Santiago del Estero</option>
> <option value="24">Tierra del Fuego</option>
> <option value="25">Tucumán</option>
> </select>
>
>
>
>
> o sea, ahí está el select del que te hablé....lo que me parece extraño
> es ese tiempo de 1013ms que me marca en la cabecera...eso no es mucho
> tiempo de demora ?
> bueno, te adelantaba algo porque sigo probando, pero el jueves si no,
> lo vemos bien.
>
>
>
>
> El 27 de mayo de 2013 15:57, Ariel Fernández <arielf05 en gmail.com>
> escribió:
> Ah, ok lo del ejemplo.
> Sí Leo, eso hice, utilicé dos variables, y entiendo lo del
> ámbito de las variables, si cuando tenía una sola
> funcionaba... pero debo tener algo mal con eso, porque las
> llamadas no son simultáneas, una es cuando se carga la página
> y la otra en un change de un select.
> Y si no funciona, lo cargaré con php al comienzo y listo, y
> uso ajax sólo una vez para el select. De última lo vemos bien
> el jueves.
>
> El may 27, 2013 3:27 p.m., "Leonardo Tadei - Pegasus Tech
> Supply" <leonardot en pegasusnet.com.ar> escribió:
>
> Hola Ariel,
>
> El dom, 26-05-2013 a las 21:53 -0300, Ariel Fernández
> escribió:
> > Leo, se pueden definir más de un objeto
> xmlHttpRequest ? o con uno
> > solo alcanza para todas las peticiones al servidor
> de todas las
> > funciones?
>
> Se puede. De hecho mostré justo esto en el
> ejemplo del software que
> había llevado.
> La pregunta es si es necesario tener más de
> uno...
>
> > porque resulta que ahora agregué una función más que
> utiliza el
> > objeto, y me dejó de andar todo!
> > en la llamada a la función que actualiza la página,
> me dice que no
> > existe el xmlhttp
> > siendo que el objeto está inicializado al principio.
>
> Si las peticiones al servidor las hacés
> asincrónicas, tenés que tener
> cuidado de no usar un XMLHTTPRequest desde una
> función, y antes de que
> termine usarlo desde otra, porque la 2da llamada
> interrumpe la primera y
> al resetearla deja las cosas en estado inconsistente.
>
> > También probé de iniciar un nuevo ambiente ajax en
> cada función, pero
> > es como si la variable readyState fuera sólo local y
> no global, porque
> > cuando se llama a la función para actualizar (en la
> comprobación
> > readyState==4), me dice que la variable esa no está
> definida....acaso
> > hay que hacerla global de alguna forma? o tal vez se
> puede usar un
> > solo objeto ajax....
>
> Recordá lo que vimos de ámbito de variables:
> en JS el ámbito es de
> fuera hacia adentro, pero no de dentro hacia afuera.
> Seguramente es por
> eso que la variable no es visible desde la función.
>
> Si hay dos peticiones simultaneas, tenés que
> usar dos variables de tipo
> XMLHTTPRequest, una para cada llamada.
>
> Saludos!
>
>
> --
> Leonardo Tadei
> leonardot en pegasusnet.com.ar
> Web: http://leonardo.tadei.com.ar
> Firma pública:
> http://www.pegasusnet.com.ar/LeonardoTadei-public.key
>
> _______________________________________________
> Php-avanzado mailing list
> Php-avanzado en pato2.fi.mdp.edu.ar
> http://www3.fi.mdp.edu.ar/cgi-bin/mailman/listinfo/php-avanzado
>
>
> _______________________________________________
> Php-avanzado mailing list
> Php-avanzado en pato2.fi.mdp.edu.ar
> http://www3.fi.mdp.edu.ar/cgi-bin/mailman/listinfo/php-avanzado
--
Leonardo Tadei
leonardot en pegasusnet.com.ar
Web: http://leonardo.tadei.com.ar
Firma pública: http://www.pegasusnet.com.ar/LeonardoTadei-public.key
Más información sobre la lista de distribución Php-avanzado