plugin jQuery ajaxreadystate
L'implémentation de jQuery AJAX est quelque peu limitée dans la mesure où elle ne fournit pas de moyen de répondre aux événements readystatechange
qui se déclenchent lors de la requête AJAX. La documentation de l'API jQuery.ajax
indique en fait ce qui suit.
Cependant, aucun mécanisme
onreadystatechange
n'est fourni, puisquedone
,fail
,always
etstatusCode
couvrent toutes les exigences imaginables.
Bien que cette affirmation soit vraie dans la plupart des cas d'utilisation, que se passe-t-il si vous souhaitez accéder aux en-têtes de réponse ou au code d'état avant la fin de la requête entière, ou accéder au corps de la réponse pendant son flux ?
Évidemment, jQuery ne fournit pas cette fonctionnalité en raison de problèmes de compatibilité du navigateur, ce plugin ajoute donc cette fonctionnalité supplémentaire pour les navigateurs prenant en charge ces fonctionnalités (voir les notes de compatibilité ci-dessous).
Ce plugin fonctionne en ajoutant une nouvelle méthode jQuery.ajaxreadystate
, qui agit comme un wrapper pour jQuery.ajax
, étendant la fonctionnalité et mettant à jour l'objet jqXHR
pour supprimer les limitations et mettre à jour les propriétés à mesure que le readyState
change.
Vous utilisez jQuery.ajaxreadystate
comme vous le feriez avec jQuery.ajax
, sauf que vous disposez d'une méthode supplémentaire que vous pouvez définir, la méthode readystate
.
jQuery . ajaxreadystate ( {
readystate : function ( jqXHR , readyState ) {
}
} ) ;
Cette méthode se déclenchera chaque fois que la requête déclenche un événement readystatechange
et transmettra l'objet jqXHR
mis à jour et le readyState
actuel.
Vous pouvez télécharger la dernière version stable et réduite à partir de la section des versions de ce référentiel. Vous pouvez également cloner le téléchargement du référentiel à partir d'un gestionnaire de packages.
###Entièrement pris en charge
Les navigateurs suivants sont entièrement pris en charge.
###Partiellement pris en charge
Les navigateurs suivants sont partiellement pris en charge en raison des limitations techniques du navigateur lui-même. Des problèmes de compatibilité sont notés.
responseText
n'est pas disponible tant que readyState
n'est pas 4
.readystatechange
pour readyState
3
à un moment donné pendant le transfert.responseText
n'est pas disponible tant que readyState
n'est pas 4
.status
et statusText
ne sont pas mis à jour tant que readyState
n'est pas 4
.getAllResponseHeaders
et getResponseHeader
renvoient null
jusqu'à ce que readyState
soit 4
.readystate
n'est déclenché que pour readyState
1
.responseText
n'est pas disponible tant que readyState
n'est pas 4
.status
et statusText
ne sont pas mis à jour tant que readyState
n'est pas 4
.getAllResponseHeaders
et getResponseHeader
renvoient null
jusqu'à ce que readyState
soit 4
.getAllResponseHeaders
et getResponseHeader
renvoient null
jusqu'à ce que readyState
soit 3
.getAllResponseHeaders
et getResponseHeader
renvoient null
jusqu'à ce que readyState
soit 3
.readystatechange
pour readyState
3
à un moment donné pendant le transfert.status
et statusText
ne sont pas mis à jour tant que readyState
n'est pas 3
.readystatechange
pour readyState
3
à un moment donné pendant le transfert.status
et statusText
ne sont pas mis à jour tant que readyState
n'est pas 3
.readystatechange
pour readyState
3
à un moment donné pendant le transfert.getAllResponseHeaders
et getResponseHeader
renvoient null
jusqu'à ce que readyState
soit 4
.Les navigateurs plus anciens que ceux répertoriés n'ont pas été testés, mais peuvent être partiellement ou entièrement pris en charge.
Ce plugin est compatible avec jQuery 1.5+ et jQuery 2.0.0+.
Pour créer une version minifiée, exécutez cette recommandation à partir du répertoire racine de ce référentiel.
$ npm run build
Si vous trouvez un bug ou rencontrez des problèmes de compatibilité non documentés ci-dessus, veuillez ouvrir un ticket dans la section Problèmes pour ce référentiel.
Voir LICENSE.txt
Si cette licence ne fonctionne pas pour vous, n'hésitez pas à me contacter.
Si vous trouvez mon logiciel utile, pensez à faire un modeste don sur mon site Web à alexomara.com.