..


Liens sponsorisés

Quoi de neuf dans jQuery 1.5

Article écrit par Riccardo Brambilla
Page 1 sur 3

C'est quelques semaines de la version 1.5 de notre bien-aimée jQuery, suivi par retour du courrier 1.5.1, essentiellement une version bug-fixes de la première.

Mon premier instinct m'a conduit à penser que vous pourriez attendre un certain temps à multiplier les cette nouvelle version, si ce n'est que parce que la branche 1.4.x déjà effectué leur travail très bien, pour ne pas mentionner que le temps reste un peu plus sur version donne aux utilisateurs un sentiment de stabilité et de sécurité.

Mais quand j'ai lu ce qui a été changé et ajouté j'ai changé d'idée tout de suite.

Les changements dans 1,5 sont considérables, mais pas tant dans les caractéristiques qui sont exposés à la quantité de travail a été fait dans les coulisses, en particulier dans le formulaire Ajax développeurs, dont les changements n'ont pas hésité à faire appel d'époque, pas tellement en général (ce que d'autres cadres utilisent déjà Ici, nous introduisons maintenant), mais pour jQuery.

Nous verrons un peu plus précisément ce qui a été fait.

Révolution (et de refactoring) de l'Ajax forme

Extension $. Ajax ()

Équipe de développement de ce cadre a réécrit la plupart des API Ajax fournit trois façons d'étendre les fonctionnalités d'Ajax $ ():. Les préfiltres, les convertisseurs et les transports

Les préfiltres

Un préfiltre est une fonction de rappel appelée avant que la requête Ajax est effectivement envoyé, et, comme expliqué dans la documentation, préalablement à toute les options de traitement par $. Ajax () lui-même.

Le préfiltre est enregistré en utilisant $ AjaxPrefilter ().:

 



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

 

Je vais vous expliquer ce qu'est un jqXHR, Pensez-y comme un wrapper pour aujourd'hui enrichie d'un XMLHttpRequest.

L'exemple le plus intéressant dans la documentation qui explique l'utilisation possible des préfiltres de modifier une option existante






 $. AjaxPrefilter (function (options) {



  



 if (options.crossDomain) {



    



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



    



 options.crossDomain = false;



  



 }







 });



Pour dire, si l'option est crossdomain l'appel est approché à l'http://mydomain.net/proxy/ URL.

Les convertisseurs

Un convertisseur est une fonction de rappel appelée lorsque le type de données reçu est différent de celui attendu.

Et 'possible d'utiliser $ AjaxSetup () pour l'enregistrer au niveau mondial.:






 $. AjaxSetup ({



  



 convertisseurs: {



    



 "Texte Miodatatype": function (textValue) {



      



 if (valide (textValue)) {



        



 / / Ici, la logique personnalisée pour analyser!



        



 miodatatypeValue retour;



      



 Else {}



        



 / / Notifie une erreur d'analyse



        



 jète une exception;



      



 }



    



 }



  



 }







 });



Ou appelez directement en ligne pour chaque appel qu'elle nécessite:





 $. Ajax (url, {



  



 dataType: "texte XML miodatatype"



  



 convertisseurs: {



    



 «Texte XML": function (xmlValue) {



      



 / / Analyse de la logique ici!



      



 textValue retour;



    



 }



  



 }







 });



La raison la plus logique d'utiliser un convertisseur est qu'il offre un moyen de définir vos propres types de données, puis utilisé comme un type de retour, le premier exemple, nous pouvons demander à la miodatatype tapez ceci:






 $. Ajax (url, {



  



 dataType: "miodatatype"







 });



Remarque: Le type de données doivent être définies comme des chaînes en minuscules.

Les Transports

S'il y avait assez de convertisseurs les préfiltres et pour façonner notre requêtes AJAX, les objets sont faits transports disponibles, que la documentation définit en dernier ressort (qui se traduirait par "ne pas utiliser" ou avec "si vous vous sentez obligé de les utiliser, peut-être vous devriez réfléchir sur la logique que vous utilisez »).

Cependant les transports fournir deux fonctions: envoyer et avorter et devraient être enregistrés en utilisant $ AjaxTransport ()..

Voici l'exemple de base fournie dans la documentation:






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



  



 if (/ * transportCanHandleRequest * /) {



    



 {Return



      



 envoyer: fonction (en-têtes, completeCallback) {



        



 / * Envoyer * file d'attente /



      



 },



      



 abort: function () {



        



 / * Abandonner le code * /



      



 }



    



 };



  



 }







 });



et la description des paramètres qui traduisent à votre convenance:

  1. options sont les options de la demande
  2. options originalOptions sont passés à la méthode ainsi que l'Ajax, modiifcate pas définie par défaut et sans ajaxSettings
  3. jqXHR jqXHR est l'objet de la demande
  4. têtes et une valeur de la carte / clé de la demande qui peut être transmis si le transport prend en charge
  5. completeCallback est la fonction qui avertit l'achèvement de la requête Ajax.

la structure typique d'un completeCallback est comme suit:

 



 fonction (statut, statusText, les réponses, en-têtes) {}

 
où:
  1. statut est le code de statut HTTP de la réponse, les 200 classique, 404 ...
  2. statusText est la description de la réponse
  3. réponses est une carte en option qui définit la valeur datatype / qui contient la réponse dans tous les formats acceptés par le transport: par exemple une réponse en texte brut: {text: textData}
  4. têtes est une chaîne optionnelle contenant la réponse fournie par XMLHttpRequest.getAllResponseHeaders têtes ()

Nous avons décrit ce qui a été ajoutée pour augmenter la flexibilité de l'ajax module, mais pour l'usage commun je trouve commentaire très intéressant sur ​​l'introduction de différé, mais avant de le faire jqXHR définir le nouvel objet qui est retourné par les appels AJAX.

jqXHR

la famille jqXHR est un surensemble de l'objet XMLHttpRequest qui implémente l'interface de la promesse en fournissant toutes les méthodes, propriétés et comportements définis par une promesse:

Définition: Une promesse est une vue en lecture seule du résultat d'une tâche et représente la valeur retournée par l'achèvement de la transaction.

Pour plus d'informations, voir ici .

Dans la même catégorie ...
E-Learning
CSS (cours) CSS (cours)
Web Design et accessibilité selon le W3C CSS et XHTML. A partir de 29 €.
HTML (Cours) HTML (Cours)
Le langage de balisage pour le Web à partir de 29 €.
Javascript (Cours) Javascript (Cours)
Guide complet pour les scripts côté client. A partir de 39 €.
Liens sponsorisés