omlaly
-
26 mars 2013 à 10:44
BBFUNK01
Messages postés1310Date d'inscriptionjeudi 16 juillet 2009StatutMembreDernière intervention20 juin 2014
-
26 mars 2013 à 14:02
Bonjour,
J'aimerais optimiser mon code qui récupère les articles et leurs commentaires correspondants.
A l'heure actuelle afin de voir des nouveaux articles ou commentaires, il faut rafraichir, recharger la page.
J'aimerais modifier cela pour faire en sorte que les nouveaux articles ou commentaires s'affichent "en direct" (sans rechargement de la page).
J'ai vu qu'il fallait interagir avec le serveur grâce à l'AJAX et notamment grâce à XMLHttpRequest.
Pour tout vous dire, il faut que je fasse ça sur deux blocs (divs) (articles+commentaires correspondant).
BBFUNK01
Messages postés1310Date d'inscriptionjeudi 16 juillet 2009StatutMembreDernière intervention20 juin 20146 26 mars 2013 à 14:02
Hello,
tu peux par exemple faire cela en utilisant JQuery et plus particulièrement les fonctions setTimeout() et/ou setInterval() : cela te permet d'exécuter une fonction toutes les X secondes, dans cette fonction tu envoies une requête à un script PHP qui renverra la mise à jour des articles. Pour envoyer la requête du script JQuery au script PHP je te préconise plutôt le json ou le XML (en POST) car le XHR n'est pas fonctionnel sur d'anciennes versions de certains navigateurs (notammenent IE pour changer). Tu trouveras plein d'exemples de scripts pour ton intégration en fouinant sur la toile, pour ma part je procède en postant les données de JQuery à PHP et je renvoie un XML au script JQuery pour afficher le résultat :
var Data = { variable: "ma_variable" };
$.post($(location).attr('href'), Data, function(xml){
$('retour', xml).each(function(){
var STATUT = $(this).find('statut').text();
var MESSAGE = $(this).find('message').text();
if(STATUT == 'OK'){
// action à effectuer si la réponse est ok
}else{
// action à effectuer si la réponse est foireuse
}
});
});