Pages

Thursday, February 14, 2008

Polling Ajax coté client

Le besoin de faire du Push Http vers un browser est de plus en plus présent.

Une méthode consiste à poller à interval régulier depuis le browser une url pour vérifier l'arrivée d'un nouvel évènement. Voici un exemple coté client de mise en place en utilisant la librairie Ajax Prototype (Ca sert à rien de réinventer la roue à chaque fois) :
/* fonction de lancement du poll http */
function launchPolling() {
new PeriodicalExecuter(executePoll, 5);
}


/* lors de chague poll */
function executePoll() {
var url = 'your url...';
new Ajax.Request(url, {
method: 'get',
contentType: 'application/xml',
onSuccess: function(transport) {
try {
var response = transport.responseText;
if ((response != '') {
/* do something... */
}
} catch(e) {
alert(e.message);
}
transport=null;
}
});
}
Il existe aussi maintenant une évolution sur ce type de polling qui consiste à poller moins fréquemment. Le serveur, sur réception d'une requête de polling, attend avant de retourner une réponse. Ce modèle de programmation s'appelle COMET et est décrit dans un post très intéressant de Thomas Recloux à cette adresse :
http://blog.tartachuc.org/2008/02/12/comet-push-http/

No comments: