..
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.
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
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.
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.
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:
la estructura típica de un completeCallback es el siguiente:
función (estado, statusText, las respuestas, encabezados) {}
donde:
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 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í .
| |
CSS (Curso)
Diseño Web y de accesibilidad de acuerdo con W3C CSS y XHTML. A partir de 29 €. |
| |
HTML (del curso)
El lenguaje de marcado para la web desde 29 €. |
| |
Javascript (Curso)
Guía completa de scripting del lado del cliente. A partir de 39 €. |