jQuery 1.5 : AJAX réécrit, objets différés & clone de jQuery
jQuery 1.5 sous les projecteurs. C’est près d’un mois et demi après la sortie de jQuery 1.4.4 qu’est dévoilé la nouvelle version du célèbre framework JavaScript. Beaucoup de changements sont ainsi à souligner à travers les 83 bugs corrigés et pas moins de 460 tickets traités.
L’un des points important de jQuery 1.5 est la réécriture totale du module AJAX qui renvoit désormais des objets jXHR pour une meilleure consistance avec les objets XMLHttpRequest cross plateformes.
JQuery 1.5 annonce qui plus est l’arrivée d’une nouvelle fonctionnalité : les objets différés. Ces derniers offre la possibilité d’interagir avec des données retournées encore pourtant inaccessibles ; comme lors de requêtes asynchrones par exemple.
// Assign handlers immediately after making the request, // and remember the jxhr object for this request var jxhr = $.ajax({ url: "example.php" }) .success(function() { alert("success"); }) .error(function() { alert("error"); }) .complete(function() { alert("complete"); }); // perform other work here ... // Set another completion function for the request above jxhr.complete(function(){ alert("second complete"); });
Cette nouvelle release apporte en outre le clone de la librairie jQuery via jQuery.sub(). Les surcharges de méthodes natives sont ainsi envisageables sans risque d’affecter des parties de code utilisant lesdites méthodes jQuery modifiées. Un autre intérêt de cette copie est la suppression des éventuelles collisions au niveau des namespaces, pour un plugin par exemple.
(function() { var myjQuery = jQuery.sub(); myjQuery.fn.remove = function() { // New functionality: Trigger a remove event this.trigger("remove"); // Be sure to call the original jQuery remove method return jQuery.fn.remove.apply( this, arguments ); }; myjQuery(function($) { $(".menu").click(function() { $(this).find(".submenu").remove(); }); // A new remove event is now triggered from this copy of jQuery $(document).bind("remove", function(e) { $(e.target).parent().hide(); }); }); })(); // Regular jQuery doesn't trigger a remove event when removing an element // This functionality is only contained within the modified 'myjQuery'.
Est finalement à noter une amélioration des performances concernant les méthodes .children(), .prev() et .next().
Source : Blog jQuery
Après jQuery 1.5.1, jQuery 1.5.2 est publié. Cette version du Framework JavaScript n’apporte aucune nouvelle fonctionnalité mais se contente de corriger des dysfonctionnements.