PHP-Hispano.net Comunidad hispana de desarrollo web

Contacto | #php_para_torpes | Enlázanos | ¿Quiénes somos?

1106 usuarios Online (0)

Darse de alta en la web | Recuperar password   
Inicio / Archivos a prueba / Controlador de AJAX (GalloAjaxHandler)

Controlador de AJAX (GalloAjaxHandler) (148)

por xGallox Enviado 07 ene 09 51 descargas (Descargar) 8 comentarios Categoría Clases

Votación

Votos a favor 5 Votos en contra 0

Estado

Pendiente de votaciones

Descarga

Descargar

zip (3,97 KB)

Actualizaciones ( 0 )

Básicamente es una clase para gestionar de una forma sencilla llamadas AJAX o agregar scripts de forma dinámica. Llevaba un tiempo queriendo publicarlo pero bueno es enteramente en JavaScript, así que no mireis la parte en PHP que es solo para mostrar ejemplos.

Si teneis alguna duda ponedla en los comentarios o en el foro, espero que os sea útil, al menos como ejemplo de algunos métodos para hacer llamadas asincronas por web.

Podeis encontrar los ejemplos en está dirección: http://www.virtualcraft.net/widgets/gahsamples.php

Votaciones y comentarios

xGallox envió el archivo 07 ene 09

Votación

Avatar de panino

#1 09 ene 09
panino comentó...

Está muy bien, pero veo algunas cosas que deberías mejorar:
- Cada vez que instanciás el objeto AJAX hacés varias evaluaciones que conviene hacerlas sólo 1 vez. En este sentido, te recomiendo veas este artículo de Dustin Díaz: http://www.dustindiaz.com/faster-ajax/
-Nunca anulás el manejador del evento onreadystatechange, lo que puede traer problemas de memoria:
//objeto=H
H.onreadystatechange=function(){}//null produce un error en Explorer 6
H.abort();
H=null;
-handleAjaxRequest no tendría que ser un método. Convendría que usaras, en lugar de eso un callback, para poder enviar como argumento todo un contexto de ejecución que pueda usar la respuesta AJAX. En este enlace podés ver lo que quiero decir y seguro verás cómo aumenta la potencia: http://www.php-hispano.net/foros/Ajax/33101#6
-se echa de menos alguna función que permita evaluar código javascript incluído en un responseText (algo siempre tan requerido en todos los foros.)

Votación

Avatar de xGallox

#2 09 ene 09
xGallox comentó...

Si hay bastantes lagunas de rendimiento, sobretodo eso de que se vayan acumulando instancias y onreadystatechanges en memoria como tu mencionas, es un punto que tengo que arreglar, me he estado mirando la página que has puesto, parece bastante interesante, es forzar que siempre haya una sola instancia del XHR en lugar de varias como actualmente hace mi clase, algo así como un Singleton, lo intentaré aplicar, gracias.

En cuanto una función para evaluar la respuesta, creo que eso depende del uso que se le quiera dar, yo no puedo decir que hacer con lo que llega porqué eso dependerá de la lógica de negocio de la aplicación, para eso le doy la opción de sobreescribr la función de callback: handleAjaxRequest, ya menciono que es una función de callback (aunque a efectos sea un método de la clase), es decir, en handleAjaxRequest es donde pones que quieres hacer con la respuesta y siempre es llamada con la respuesta como único parámetro, por lo tanto handleAjaxRequest ha de ser sobreescrita por el usuario como indico en los comentarios. Estoy pensando en quiza seria mejor que el programador haga su función para evaluar la respuesta, sin sobreescribir nada, y la pase como argumento en el constructor de la clase, para que sea llamada en el onreadystatechange, quizá eso seria mas limpio pero el efecto y el rendimiento creo que es el mismo.

Por otro lado recuerda que hay otro método para llamar Javascript directamente, sin tener que interpretar la cadena de texto, simplemente se ejecuta.

Votación

Avatar de ZydRick

#3 27 feb 09
ZydRick votó a favor...

:)

Votación

Avatar de MasterChowl

#4 05 mar 09
MasterChowl votó a favor...

Votación

Avatar de DarkSoldi

#5 07 may 09
DarkSoldi votó a favor... (Este voto ha sido ANULADO por un voto posterior)

viva gallo

Votación

Avatar de DarkSoldi

#6 07 may 09
DarkSoldi votó a favor...

viva gallo

Votación

Avatar de gOnDo

#7 16 jun 09
gOnDo votó a favor...

Votación

Avatar de rubencm

#8 16 ago 09
rubencm votó a favor...

Para poder participar debes estar registrado e identificado. Si no estás registrado como usuario de PHP-Hispano, :: Registrar ::
Login / Password   

php-hispano.net 2002 - 2010 | XHTML 1.0
Datos Legales | Webmaster