[JQuery] $.ajax et readyState==3

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : [JQuery] $.ajax et readyState==3

Re: [JQuery] $.ajax et readyState==3

par jojolapine » 07 oct. 2009, 15:37

Le problème c'est que ces fonctions permettent de remplacer les tests sur readyState pour les valeurs:
"1" (ajaxStart()),
"2" (ajaxSend()) et
"4" (ajaxComplete() ou ajaxSuccess() je ne sais pas),
mais "l'état" "3" (ie données reçues en parties) ne possède pas de fonction dédiées...
Du coup ben obligé d'utiliser l'objet xhr retourné par $.ajax

Re: [JQuery] $.ajax et readyState==3

par SpiderNéo » 07 oct. 2009, 15:04

Bonjour,
D'aprés moi, tu devrais voir du coté de

jQuery.ajaxComplete()
jQuery.ajaxError()
jQuery.ajaxSend()
jQuery.ajaxSetup()
jQuery.ajaxStart()
jQuery.ajaxStop()
jQuery.ajaxSuccess()

[JQuery] $.ajax et readyState==3

par jojolapine » 08 sept. 2009, 18:00

Bonjour à tous,
Je cherche actuellement à exploité des requêtes ajax en cours de traitement, mais ça n'est pas possible (à priori) avec les fonctions ajax de base de jquery, j'y parviens tout de même de cette manière:
[javascript]var xhr=$.ajax({
type: "POST",
url: "script.php",
data: requete
});

var taille=0;

var update=function(){
if (xhr.readyState == 3 && xhr.responseText.length > taille){
// traitement
}
};

xhr.onreadystatechange= function(){ update(); };
[/javascript]
Alors ça fonctionne tout bien, mais j'aimerais étendre jquery, afin de pouvoir faire plus propre, genre:
[javascript]
var taille=0;
$.ajax({
type: "POST",
url: "script.php",
data: requete,
onreadystatechange: function(status,response){
if(status==3 && response.length > taille){
//blabla
}
}
});[/javascript]
Seulement je n'ai aucune idée de comment faire...
Une idée?
Merci d'avance ;)