Libreria AJAX

Agregar a favoritos

21 Comentarios

Posteado hace 1388 días en:

Por fin tengo mi propia clase AJAX , siempre he usado XHconn que me parece perfecta, fácil de implementar y de usar.
Partiendo de varios conceptos he creado una clase que se adapta a mis necesidades, enviar parámetros, recoger el refer, disparar una función y actualizar en una capa.

La clase es fácil de usar, solo tienes que rellenar los argumentos.

Existen dos métodos, ajax.get y ajax.post:

ajax.get(url,parametros,función);

El primer argumento es el que mas destaca, la única novedad que tiene es que puedes concatenar la respuesta o añadirla delante.Se usa de una forma sencilla y es definiendo el ancla.

 ajax.get('ajax.php#update');

En esto ejemplo la respuesta obtenida en ajax.php se cargaría en la capa con id update.

 ajax.get('ajax.php#^update');

Igual que el anterior pero añadida delante

ajax.get('ajax.php#+update');

En este caso la respuesta estaria concatenada con el html del contenedor.

El segundo argumento (opcional) es pasado como un objeto e indicamos los valores a pasar. Esto se hace de esta forma porque resulta muy comodo, mucho mejor que escapar manualmente los caracteres.

ajax.get('ajax.php#update',{id:125,action:"ajax"});

El tercer argumento (opcional) es para indicar una función y dispararla al obtener la respuesta de la pagina.

ajax.get('ajax.php#updare',{id:125,action:"ajax"}, function(oRequest) { alert(oRequest.responseText); } );

El modo de uso no es complicado, solo tienes que añadir al onclick del enlace un return ajax.get();, la función retorna false y el link del href no se efectúa.

<a href="update.php" onclick="ajax.get('ajax.php#update');">Enlace</a>
<div id="update"></div>

Descargar la clase AJAX.


  • avatar

    Diego#1 hace 1388 días

    Daniel, primero gracias!!

    Luego: Como haces para llamar a la funcion del PHP? (o del lenguaje servidor que corresponda), a la funcion que te refieres en tu clase es a una funcion JavaScript…

  • avatar

    Icebeat#2 hace 1388 días

    La parte del servidor no la he tratado en en la clase JavaScript aunque la implementación es facil de realizar, es echarle un poco de imaginación.

  • avatar

    guu#3 hace 1388 días

    no esta mal, aunque te recomiendo usar Script.aculo.us y/o Prototype. Muy completo y sencillo de usar.

    http://script.aculo.us/

  • avatar

    EnZo#4 hace 1387 días

    3. No es necesario usar esas librerias tan complejas, cuando tus necesidades son mucho menores.

    Esta chulo, y facil de usar y entender.

  • avatar

    Alex Sancho#5 hace 1385 días

    Ideal para proyectos sencillos, salu2 y gracias ;)

  • avatar

    kNo#6 hace 1384 días

    Mal porque está mal programado. Si es una clase hay que instanciarla:
    aj = new ajax;
    aj.get(....)

    Si no ¿que pasa si pulso dos veces al botón o quiero hacer dos peticiones asincronas distintas? No se pueden hacer dos instancias distintas luego no es una clase. Esto pasa cuando los diseñadores gráficos se meten a programadores… malo, malo :(

  • avatar

    Icebeat#7 hace 1384 días

    Guu como dice EnZo a veces es mejor no complicarse la vida.
    kNo lo hago lo mejor que puedo, quizas me haya equivocado en llamarla clase, pero eso no quita que no funcione y cumpla su función.
    Sobre el tema de los diseñadores desarrolladores mejor no entrar en debate.

  • avatar

    guu#8 hace 1382 días

    Te entiendo perfectamente, pero creo que para este tipo de cosas lo mejor es hacer equipo entre un diseñador y un desarrollador en lugar de entrar en ningun debate.

    Yo manejo bien Prototype y Script.aculo.us y me parecen sencillos, pero no podria hacer nada de calidad como esta web, por ejemplo. O sea, si combinaramos nuestras habilidades podrias tener cosas muy utiles y robustas y ademas con diseños excelentes.

    Insisto, me parece bien que hagas tus propias librerias, eso te lleva a entender mucho mas las cosas. Yo lo hice tambien. Pero es mas facil aprender a utilizar Prototype que hacer su propia libreria.

    Si te interesa, puedo darte una mano con eso. Es mas, podemos hacer algun mini-proyecto y ver q tal.. bueno, solo una idea.
    Saludos

  • avatar

    Icebeat#9 hace 1380 días

    Guu a mi mencanta experimentar, prefiero hacer mis propias librerias aunque luego use las otras. Creo que es una buena forma de aprender, aunque vaya mas lento.
    Guu ahora mismo ando liado en un proyecto bastante bueno, pero por ejemplo en ese solo me encargo del diseño, tienes mucha razón que cada uno se especialize en lo que toca, pero yo no le tengo miedo al codigo igual que algunos programadores al diseño.

  • avatar

    Cristian Villaseca#10 hace 1375 días

    Hola
    Disculpen por las molestias, resulta que desde algunos días no puedo editar imágenes en WebFtp y no soy el único usuario de bitácoras.com con este problema.
    Saludos

  • avatar

    Aure#11 hace 1369 días

    Y hablando de AJAX…
    He notado que cuando cargo contenido obtenido mediante AJAX y si este nuevo contenido trae trocitos Javascript, estos no son interpretados, es decir, si en el nuevo contenido traigo un [ alert(‘Holas’); ], cuando se carga no muestra el mensajito…
    Habrá alguna forma de poder hacer que lo interprete???

  • avatar

    Icebeat#12 hace 1368 días

    Aure eso es porque tienes que usar eval(); para evaluar la cadena y ejecutar codigo javascript.

  • avatar

    Aure#13 hace 1367 días

    Si, eso me imaginé y lo intenté implementar, pero oh sorpresa que solo puedo pasarle las instrucciones javascript al eval() [un alert() por ejemplo] y lo que yo quería es que evaluara todo el contenido regresado (un bloque de HTML con Javascript incrustado entre etiquetas )... el eval entonces me marca un error de sintaxis.

  • avatar

    Icebeat#14 hace 1366 días

    Echale un vistazo a este enlace. http://kratcode.blogspot.com/2006/03/javascript-script-execution-in.html a lo mejor te soluciona la papeleta.

  • avatar

    Aure#15 hace 1365 días

    jajaja, Eres genial icebeat…
    Tnx

  • avatar

    IceBeat#16 hace 1357 días

    Pa eso tamos Aure :).

  • avatar

    Alex Barros#17 hace 1142 días

    Gracias a esta sencillisima clase he podido trabajar con AJAX !!

    Yo empecé con librerias complejas, y aunque unas más que otras, todas bastante pesadas. Y lo único que quería era lo mínimo para hacer una conexión tipo AJAX, de lo más sencillo.

    Este es el único código que haya visto que funciona perfectamente en todos los navegadores, y cumple su función perfectamente, ni más ni menos.

    La he utilizado en varios proyectos interesantes con muy buenos resultados. Muchísimas gracias.

    Y acerca de los desarrolladores / diseñadores. Yo no me considero ni una cosa ni la otra. Tanto me da por currarme un buen diseño tirando del CSS y HTML como por programar y desarrollar mis algoritmos, funciones y demás en PHP, Javascript, etc. No creo que sean incompatibles, más bien complementarios. Además, lo mejor que puede hacer uno es experimentar con lo que le gusta.

    Un saludo.


  • avatar

    Frank#18 hace 1075 días

    Está muy chida tu explicación y tu clase de ajax me servira para hacer mi propia clase utilizare tu clase como molde de la mia. jajaja gracias


  • avatar

    IceBeat#19 hace 1074 días

    Frank mootools es una buena libreria, te la recomiendo mister.


  • avatar

    ovreuc#20 hace 1011 días

    Existe una manera mas sencilla para tomar los parametros que se enviaran por ajax?, es decir en lugar de tener por ejemplo la forma:

    ajax ('div', 'pagina', 'var_1='+document.form.texto.value ... etc..

    ya que si tengo que enviar mas de 5 ya se hace tedioso y trabajoso, conocen alguna manera de automatizar el envio de los parametros?


  • avatar

    IceBeat#21 hace 1011 días

    @ovreuc te recomiendo mootools.