JeuWeb - Crée ton jeu par navigateur
[Ajax] Fonction de rafraîchissement automatique : lourd ou pas ? - Version imprimable

+- JeuWeb - Crée ton jeu par navigateur (https://jeuweb.org)
+-- Forum : Discussions, Aide, Ressources... (https://jeuweb.org/forumdisplay.php?fid=38)
+--- Forum : Programmation, infrastructure (https://jeuweb.org/forumdisplay.php?fid=51)
+--- Sujet : [Ajax] Fonction de rafraîchissement automatique : lourd ou pas ? (/showthread.php?tid=2696)

Pages : 1 2 3 4


[Ajax] Fonction de rafraîchissement automatique : lourd ou pas ? - Kassak - 03-07-2008

Je me suis mis à l'Ajax, du moins j'ai une fonction qui me permet de refresh une div à un intervalle que je définie.

Bref, je m'en suis servi sur mon minichat, qui me permet d'avoir un refresh a chaque seconde, donc un effet de temps réel.
Je ne me suis pas posé la question du si cela va être lourd ou pas lourd, car ce script n'est présent que sur une page.

Mais maintenant, je souhaite faire de même pour l'affichage des connectés, des connectés dans la taverne, et le nombre de nouveau message.

Ces trois infos se trouvent dans le menu de gauche, dans le header, présent donc sur toutes les pages.
A chaque refresh, c'est le fichier .js qui se charge (un script par div à refresh...donc la 4 scripts dans le fichier), et dans la div un include (le include contient tout ce qui sera refresh, donc quelques requêtes php).


Me vient la soudaine question, cela ne va t-il pas me pomper les 3/4 des ressources ( disons 100 jours connectés, et 4 divs qui se refresh toutes les 1 ou 2 secondes ) ?

Je n'ai aucune idée de la "pesanteur" de l'Ajax combiné à mon...magnifique bordel organisé, donc si vous avez une petite idée sur la question, ou une manière de contourner ce problème si jamais tout ça consomme beaucoup...

:bisou:


RE: L'ajax, fonction qui refresh auto, lourd ou pas? - Raoull - 03-07-2008

mmm je fais un peu pareil sur une shoutbox/chat mais j'utilise un fic JSON au lieu de faire appel à la bdd. Ca raccourci un peu la procédure.

C'est un avis perso, mais par contre je trouve que rafraichir toutes les secondes ou meme toutes les 2 secs c'est trop lourd.

Moi je rafraichi au minimum toutes les 5secs et c deja bcp (par defaut c'est 30 secondes), et je rafraichi quand l'utilisateur envoie un msg. C'est largement suffisant je trouve.

Et encore, un "chat" en ajax c'est pas rentable en effet. Pour ca que j'ai appelé ça une "shoutbox" plutot.

Je pense qu'il faut laisser le temps que la reuquete AJAX aboutisse. Recharger toutes les secondes ton pseudo chat en php/JS/ajax c'est pas la solution. A ce moment là, faut se tourner vers des solutions de vraies chat, genre PJIRC (applet irc java) si tu veux du temps reel.


RE: L'ajax, fonction qui refresh auto, lourd ou pas? - Sephi-Chan - 03-07-2008

Une petite remarque quand on utilise une page avec rafraîchissement automatique : pensez à conditionner l'arrêt du rafraîchissement.

Par exemple, si l'utilisateur n'effectue aucune action sur la page pendant N secondes, ralentir la fréquence de rafraîchissement (ou l'arrêter). Cela peut se faire au moyen d'une variable javascript et d'un compteur et ça permet quelques économies sur une technique tout de même assez gourmande.


Sephi-Chan


RE: L'ajax, fonction qui refresh auto, lourd ou pas? - emaia - 03-07-2008

Salut,
Si le chat est in-game, le temps de chargement des pages risque d'être long.
De plus un refresh toute les 1sec risque peut-être d'être un peu lourd pour le serveur et la joueur.
COrdialement, emaia.


RE: L'ajax, fonction qui refresh auto, lourd ou pas? - keke - 03-07-2008

Et moi aussi je m'y suis mis à ma requête AJAX pour le tchat ^^

Un truc que j'ai vite mis en place, c'est de ne récupérer QUE les lignes de texte utile. La requête devient ainsi plus légère...
Je rafraichis toutes les 5 secondes aussi ... et l'idée de Sephi-chan m'a traversé l'esprit bien que je n'ai pas eu l'occasion de m'y mettre.

Kéké.
PS : Mon chat est en ligne, mais pas accessible par défaut.


RE: L'ajax, fonction qui refresh auto, lourd ou pas? - Kassak - 03-07-2008

Ouep, c'est sur que du 1 ou 2 secondes comme j'avais fait ça ne servait pas à grand chose, je viens de pousser à 10s, je n'y voit pas de différence ( je parle différence d'un point de vue temps réel ), je pense pousser un peu plus, 30s me parait un peu trop, un minichat, c'est quelque chose de rapide, un joueur peut bien poster un message toutes les 15s, donc à mon avis arrivé à 30s, un paquet de messages vont apparaitre d'un coup => pas top moumoute.


Sephi-chan, je vais en effet faire un système comme ça, ça permettra déjà d'éliminer une consommation de ressource inutile.

Et je ne veux en aucun cas me tourner vers un chat déjà fait, le mien est unique, je peux faire ce que je souhaite avec (je viens de faire un système tout bête ou on peut picoler et offrir à boire...), il est bien intégré dans ma page,accessible en 1 clique, bref beaucoup plus souple.

Sinon, vaut il mieux que je sépare chaque script dans un fichier .js différent? Plutôt que de charger le gros à chaque fois?


RE: L'ajax, fonction qui refresh auto, lourd ou pas? - Ter Rowan - 03-07-2008

salut,

je ne comprends pas trop ta notion de rechargement d'un script

A mon sens, Ajax ne devrait charger que quelques données (du texte, xml, etc...)qu'un script chargé une fois au chargement de la page, interprète pour modifier le DOM

grossièrement je ferais

au chargement de la page php/html, le chargement du/des scripts js.

de là :
une fonction js s'exécute une fois la page chargée :

+ elle appelle une requête ajax (quoi de neuf)
+ lorsque le serveur répond ("duchmol a écrit blablabla")
+ la réponse est traitée et le "div" ou autre morceau html est modifié en compétence.
+ x secondes après, la fonction se relance

mais en aucun cas y a un refresh de la page entière

Je suis à côté de la plaque ou ?


RE: L'ajax, fonction qui refresh auto, lourd ou pas? - Bladrak - 03-07-2008

Citation :Ouep, c'est sur que du 1 ou 2 secondes comme j'avais fait ça ne servait pas à grand chose, je viens de pousser à 10s, je n'y voit pas de différence ( je parle différence d'un point de vue temps réel ), je pense pousser un peu plus, 30s me parait un peu trop, un minichat, c'est quelque chose de rapide, un joueur peut bien poster un message toutes les 15s, donc à mon avis arrivé à 30s, un paquet de messages vont apparaitre d'un coup => pas top moumoute.

Il me semble que Raoull rafraîchit aussi quand un utilisateur envoie un message. C'est peut-être le mieux à faire en fin de compte Smile


RE: L'ajax, fonction qui refresh auto, lourd ou pas? - Sephi-Chan - 03-07-2008

On parle effectivement de rafraîchissement locaux dans la page.


RE: L'ajax, fonction qui refresh auto, lourd ou pas? - TiFred - 03-07-2008

Bonjour,

Serait-il possible d'avoir un exemple de rafraichissement d'un DIV ?
Merci