..


Enlaces patrocinados

¿Qué hay de nuevo en jQuery 1.5

Artículo escrito por Ricardo Brambilla
Página 1 de 3

Es un par de semanas fuera de la versión 1.5 de nuestro querido jQuery, seguido a vuelta de correo 1.5.1, básicamente una versión de errores fijos de la primera.

Mi primer instinto me llevó a pensar que se podía esperar algún tiempo para batir hacia fuera esta nueva versión, aunque sólo sea porque no la rama 1.4.x ya realizados en su trabajo muy bien, por no mencionar que permanecen más tiempo en versión ofrece a los usuarios una sensación de estabilidad y seguridad.

Pero cuando leo lo que se ha cambiado y añadido he cambiado de opinión de inmediato.

Los cambios en el 1,5 son sustanciales, pero no tanto en las características que se exponen a la cantidad de trabajo que se ha hecho entre bambalinas, sobre todo en la forma Ajax desarrolladores, cuyos cambios no dude en llamar época, no tanto en general (lo que otros marcos ya utilizan Aquí presentamos ahora), pero para jQuery.

Vemos un poco más específicamente lo que se ha hecho.

Revolución (y refactorización) de la forma Ajax

$ Extensión. Ajax ()

El equipo del marco de desarrollo ha reescrito la mayor parte de la API Ajax proporciona tres formas de ampliar la funcionalidad de $ Ajax ():. Los prefiltros, los convertidores y los transportes

Los prefiltros

Un pre-filtro es una función de devolución de llamada antes de la petición ajax se llega a enviar, y, como se explica en la documentación, antes de cualquier tratamiento de dólares. Ajax () en sí.

El prefiltro se registra el uso de $ AjaxPrefilter ().:

 



 $. AjaxPrefilter (function (opciones, originalOptions, jqXHR)

 

Voy a explicar lo que es un jqXHR, Piense en ello como un contenedor para se enriquece con un XMLHttpRequest.

El ejemplo más interesante en la documentación explica el posible uso de prefiltros para modificar una opción existente






 $. AjaxPrefilter (function (options) {



  



 if (options.crossDomain) {



    



 options.url = "http://miodominio.it/proxy/" + encodeURIComponent (options.url);



    



 options.crossDomain = false;



  



 }







 });



Decir, si la opción es la llamada crossdomain se aproxima a la http://mydomain.net/proxy/ URL.

Los convertidores

Un convertidor es una función de devolución de llamada cuando el tipo de datos recibido es diferente del que se esperaba.

Y 'posible utilizar AjaxSetup $ () para registrar todo el mundo.:






 $. AjaxSetup ({



  



 convertidores: {



    



 "Miodatatype texto": function (textValue) {



      



 if (válido (textValue)) {



        



 / / Aquí la lógica personalizada para analizar!



        



 miodatatypeValue retorno;



      



 Else {}



        



 / / Notifica un error de análisis



        



 lanzar una excepción;



      



 }



    



 }



  



 }







 });



O llame directamente en línea para cada llamada que se requiere:





 $. Ajax (url, {



  



 tipo de datos: "xml texto miodatatype"



  



 convertidores: {



    



 "XML de texto": function (xmlValue) {



      



 / / Procesar la lógica de esto!



      



 textValue retorno;



    



 }



  



 }







 });



La razón más sentido usar un convertidor es que proporciona una forma de definir sus propios tipos de datos se utiliza como un tipo de retorno, el primer ejemplo, podemos pedir a la miodatatype este tipo:






 $. Ajax (url, {



  



 tipo de datos: "miodatatype"







 });



Nota: El tipo de datos deben ser definidos como cadenas en minúsculas.

Los Transportes

Si no fuera suficiente convertidores de los prefiltros y para dar forma a nuestras peticiones ajax, los objetos se hacen transportes disponibles, que la documentación que define en última instancia (que se traduciría como "no uso" o con "si usted se siente obligado a utilizarlos, tal vez debería reflexionar sobre la lógica que está utilizando ").

Sin embargo, el transporte de proporcionar dos funciones: enviar y abortar y debe registrarse con $ AjaxTransport ()..

Aquí está el ejemplo básico en la documentación:






 $. AjaxTransport (function (opciones, originalOptions, jqXHR) {



  



 if (/ * transportCanHandleRequest * /) {



    



 {Return



      



 enviar: function (encabezados, completeCallback) {



        



 / * Enviar * cola /



      



 },



      



 abortar: function () {



        



 / * Cancelar el código * /



      



 }



    



 };



  



 }







 });



y la descripción de los parámetros que se traducen para su comodidad:

  1. las opciones son las opciones de la solicitud
  2. originalOptions opciones se pasan al método, así como el Ajax, no modiifcate definidos por defecto y sin ajaxSettings
  3. jqXHR jqXHR es el objeto de la solicitud
  4. encabezados y un valor de mapa de teclado / de la solicitud que se puede transmitir si el transporte se apoya
  5. completeCallback es la función que notifica la finalización de la solicitud de ajax.

la estructura típica de un completeCallback es el siguiente:

 



 función (estado, statusText, las respuestas, encabezados) {}

 
donde:
  1. el estado es el código de estado HTTP de la respuesta, el clásico 200, 404 ...
  2. statusText es la descripción de la respuesta
  3. respuestas es un mapa opcional que define el valor de tipo de datos / que contiene la respuesta en todos los formatos aceptados por el transporte: por ejemplo, una respuesta en texto: {texto: textData}
  4. cabeceras es una cadena opcional que contiene la respuesta proporcionada por XMLHttpRequest.getAllResponseHeaders encabezados ()

Hemos descrito lo que se ha añadido para aumentar la flexibilidad del módulo de ajax, pero para el uso común me parece un comentario muy interesante sobre la introducción de diferidos, pero antes de hacerlo jqXHR definir el nuevo objeto que se devuelve de las llamadas ajax.

jqXHR

jqXHR familia es un superconjunto del objeto XMLHttpRequest que implementa la interfaz promesa de proporcionar a todos los métodos, propiedades y comportamientos definidos por una promesa:

Definición: Una promesa es una vista de sólo lectura de los resultados de una tarea y representa el valor devuelto por la finalización de la transacción.

Para más información ver aquí .

En la misma categoría ...
E-Learning
CSS (Curso) CSS (Curso)
Diseño Web y de accesibilidad de acuerdo con W3C CSS y XHTML. A partir de 29 €.
HTML (del curso) HTML (del curso)
El lenguaje de marcado para la web desde 29 €.
Javascript (Curso) Javascript (Curso)
Guía completa de scripting del lado del cliente. A partir de 39 €.
Enlaces patrocinados