JeuWeb - Crée ton jeu par navigateur
Comment gérez-vous le contenu des "fenêtres" d'information? - 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 : Comment gérez-vous le contenu des "fenêtres" d'information? (/showthread.php?tid=4674)

Pages : 1 2


RE: Comment gérez-vous le contenu des "fenêtres" d'information? - Argorate - 28-03-2010

Oui c'est plutot utile pour les joueurs oui, mais c'est pas pour autant que se sera utilisé a chaque fois, et faut que je test pour voir s'il y a vraiment "un temps de chargement" si j'ai de l'ajax, car pour si peu ça m'étonerais.


RE: Comment gérez-vous le contenu des "fenêtres" d'information? - php_addict - 28-03-2010

(28-03-2010, 06:35 PM)Argorate a écrit : Vous ne me dites toujours pas en quoi c'est un avantage de tout charger des le début Smile
Moi je trouve ça bête de charger des trucs qui seront potencielement pas utilisé...
C'est pour ça que j'ai posté ici, c'était pour avoir des avis exterieur. Mais j'avoue que y a pas d'argument favorable pour l'instant...

non, mais l'inverse est peu etre pire:

en ajax le risque c'est de demander plusieurs fois la meme chose, non ?


RE: Comment gérez-vous le contenu des "fenêtres" d'information? - Sephi-Chan - 28-03-2010

(28-03-2010, 08:50 PM)php_addict a écrit : non, mais l'inverse est peu etre pire:

en ajax le risque c'est de demander plusieurs fois la meme chose, non ?

Ma solution évite ce problème.


Sephi-Chan


RE: Comment gérez-vous le contenu des "fenêtres" d'information? - Allwise - 28-03-2010

Disons que si ta page sans les informations pèse 3 ko et qu'avec elle pèse 150 ko, effectivement les charger en Ajax au compte goûte est une bonne solution. Si par contre ta page passe à 5 / 6 ko ( je donne des données farfelues mais c'est pour l'exemple ), mieux vaut tout charger dès le début. C'est une question d'ergonomie, lorsqu'un internaute survole quelque chose avec sa souris il s'attend à avoir un résultat instantané. Si tu charges tes datas en ajax, faut que ce soit super rapide, sinon ça va être lourd de survoler, et d'attendre que s'affiche une petite boîte qu'on ne va regarder que quelques instants.
A contrario quand on clique quelque part sur une page web on est habitué à attendre, parce que cliquer sur un lien = chargement d'une nouvelle page chez les internautes. C'est en ça que l'Ajax est si bon et si ergonomique, ça casse notre habitude de navigation et ça la rend meilleure.
Le survol d'un élément devrait toujours afficher des infos annexes, et celles-ci devraient être accessibles rapidement, instantanément. Enfin je le vois comme ça. En fait c'est juste une manière de présenter une info à l'utilisateur qui est très pratique parce qu'elle fait économiser de la place.
De plus, si tu mets en place des requêtes Ajax au survol de certains éléments, imaginons que t'aies 5 éléments sur ta page qui affichent une tooltip au survol. Si l'internaute survole rapidement les 5 éléments, pouf t'as 5 requêtes Ajax qui partent en même temps. Même si côté serveur tu assures, côté client, si le mec a un vieux PC il va comprendre sa douleur avec ses 5 requêtes concurrentes. Alors bien sûr, tu peux mettre un ptit timer qui déclenche la requête que si le mec survole + d'une seconde, mais dans ce cas il faut attendre c'est pas cool. Tu peux aussi mettre en place un système de queue, mais faudrait aussi attendre.


RE: Comment gérez-vous le contenu des "fenêtres" d'information? - Argorate - 28-03-2010

Ah, bin voilà, ça c'est un argument qui m’interpelle Smile
J'avoue que j'avais pas songé au problème du gars qui passe partout rapidement (le chieur ! :p)
Ca peut faire des merdes effectivement...

Faut voir.
Mais pour ce qui est du risque de faire plusieurs fois le même appel ajax, il suffit de verrouiller pour que ça le fasse qu'une fois, ce n’est pas le problème donc.
Apres une fois que c'est charger, même si le gars met sa souris ailleurs et reviens, là ce sera instantané, y a que la première fois qui peut embêter...

Je vais tester juste pour voir.

PS: j'ai aucune idée du poids de la page avec ou sans ces données (surtout que c'est variable en fonction de se qu'il y a sur la map évidement) donc raison de plus pour tester.


RE: Comment gérez-vous le contenu des "fenêtres" d'information? - Ter Rowan - 01-04-2010

dans mon premier "essai" (vu que je refonds tout) j'étais parti sur une méthode intermédiaire :

j'avais une seule page qui portait tout le jeu
celui ci se basant sur des onglets (des div quoi), des menus et descriptions (tes "popup")

A l'origine (mais je n'avais pas encore fait les calculs du niveau de chargement initial) je ne chargeais que ce qui était visible, soit la page, le premier onglet et aucune "popup" (div) ou "aide en ligne" ou autre

ensuite l'expérience utilisateur :
on regarde le descriptif/aide/popup diverse : alors soit le div existe déjà, soit une requête ajax récupérant plusieurs données (pour réduire le nombre de requêtes sql)

Exemple (cherchez pas c'est une illustration) :
j'ai des caractéristiques (force, endu, etc..)
j'ai des barres d'énergie (vie/mana/etc...)
j'ai des objets (épée, fiole, etc..)
j'ai des décors (arbre, maison, ...)

dans mon modèle, ces quatre familles correspondent à 4 tables complètement différentes (pour simplifier)

1) le joueur passe sa souris sur la barre de vie :
js s'aperçoit que l'aide n'existe pas, il fait une requête ajax et récupère toutes les infos de vie, mana, etc... puis crée les div correspondantes, enfin affiche les infos de la barre de vie

2) le joueur passe sa souris sur la barre de mana :
js s'aperçoit que l'aide existe, il affiche le div

3) le joueur passe sa souris sur un arbre
js s'aperçoit que l'aide n'existe pas, il fait une requête ajax et récupère toutes les infos qui vont bien. La on peut imaginer ne faire une requete avec une clause " where type in (les types affichés et visibles par le joueur) " afin d'éviter de ramener les infos de "la super épée qui tue que personne connait encore mais qui est en base"

4) sur le rocher
ben ça a été chargé et donc il suffit de s'afficher

si le joueur ne regarde pas les caractéristiques, elles n'auront jamais été chargé

maintenant, à relativiser, mais c'est vers cela que j'irai avec les réflexions suivantes :
1) ca évite de faire 100 requêtes ajax pour les 100 objets de l'inventaire, si noeudnoeud passe la souris sur chaque (je connais des noeudnoeud qui le font, genre moi)
2) à voir par l'étude ou le postulat, il est certainement pertinent de charger directement certaines infos, celles tout le temps regardées
3) découper au bon niveau : si récupérer les données de 100 objets c'est énormes, ben n'en récupère que 20, segmente par la classe ou autre chose

et enfin 4) déjà dit plus haut, si ca ne rajoute que 1ko autant tout ramener


RE: Comment gérez-vous le contenu des "fenêtres" d'information? - Argorate - 02-04-2010

Oui, en fait je pense que je vais partir sur ça, y a pas tant d'info que ça. Ce sera plus simple et pas tellement plus couteux Smile
Merci a vous.