Bonjour,
Travaillant actuellement sur un site utilisant beaucoup la technologie ajax, j'essaie de limiter les appels qui sont faits, afin de soulager le serveur en cas de latence par exemple.
Concrètement, j'essaie de créer un objet standard utilisé pour mes appels Ajax en JQuery, permettant de bloquer l'appel Ajax si un appel est déjà en cours.
Ma première question est de savoir ce que vous en pensez, et si vous connaissez des scripts existants dans ce style là.
J'ai commencé un bout d'objet, mais je rencontre quelques problèmes, voici comment j'aimerais l'utiliser :
Voici l'objet en question :
Le problème est que ma fonction de callback n'a pas accès à la variable data, et donc je ne peux pas gérer à ma facon le retour de la methode post.
Avant de m'arracher les cheveux la dessus, j'aimerais donc savoir si c'est déjà venu à l'idée à quelqu'un de coder un truc dans le genre, et s'il n'existe pas une solution plus simple.
Merci
Modifié par avri (05 Aug 2010 - 18:06)
Travaillant actuellement sur un site utilisant beaucoup la technologie ajax, j'essaie de limiter les appels qui sont faits, afin de soulager le serveur en cas de latence par exemple.
Concrètement, j'essaie de créer un objet standard utilisé pour mes appels Ajax en JQuery, permettant de bloquer l'appel Ajax si un appel est déjà en cours.
Ma première question est de savoir ce que vous en pensez, et si vous connaissez des scripts existants dans ce style là.
J'ai commencé un bout d'objet, mais je rencontre quelques problèmes, voici comment j'aimerais l'utiliser :
var ah = new AjaxHandler();
// ah.call( 'nom_du_ficher_ajax.php', {parametres}, callback );
// Premier appel Ajax
ah.call( 'test.php', {id: 1}, function(data){alert('mon post "'+data+'"');} );
// si le premier post n'est pas terminé, ce deuxieme appel doit afficher un message d'erreur a l'utilisateur, et l'appel Ajax n'est pas effectué
ah.call( 'test.php', {id: 1}, function(data){alert('mon post "'+data+'"');} );
Voici l'objet en question :
function AjaxHandler(){
this.query;
this.call = function(file, vars, callback){
if( this.query == null ){ // il n'y a pas d'appel Ajax en cours (avec JQuery)
this.query = $.post(file, vars, function(data){callback(); ah.end();});
}
else{ // Un appel est déjà en cours
show_message('The server is working. Please try later.');
}
}
this.end = function(){
this.query = null;
}
}
Le problème est que ma fonction de callback n'a pas accès à la variable data, et donc je ne peux pas gérer à ma facon le retour de la methode post.
Avant de m'arracher les cheveux la dessus, j'aimerais donc savoir si c'est déjà venu à l'idée à quelqu'un de coder un truc dans le genre, et s'il n'existe pas une solution plus simple.
Merci

Modifié par avri (05 Aug 2010 - 18:06)