Architecture pas optimisée - 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 : Architecture pas optimisée (/showthread.php?tid=7617) |
Architecture pas optimisée - L'Omniscient - 05-04-2016 Bonjour, Après discussion avec niahoo, je voulais vous montrer un code qui effectue une action en AJAX qui met 2 à 3 secondes de délais avant que toutes les requêtes n'aient été terminées, et ce sur une bonne connexion ! Donc imaginez une mauvaise connexion >..< Alors, d'abord je vous explique : On explorer plusieurs cases d'affilé, à chaque exploration, une ressource s'affiche, et si on la collecte, ça nous envoie les données via AJAX, sachant qu'il peut y avoir jusqu'à 3 ressources différentes :
Après 1 collecte de ressource, la page AJAX est cherché et le code suivant est effectué :
Puis le code suivant est effectué jusqu'à 3 selon, selon le nombre de ressources différentes, avec les variables ressour1, ressour2 et ressour3. Donc trois fois ci-dessous par requête AJAX.
J'ai essayé de réfléchir à comment alléger ce code, sans pour autant décharger des traitements en JS pour un soucis de sécurité. Vous auriez des conseils pour l'alléger ? RE: Architecture pas optimisée - niahoo - 05-04-2016 Il te faut utiliser les balises [ code=javascript] ... [/code] car sinon c'est vraiment pas lisible. ça ça me semble faux déjà : tu lis et écris dans le même tableau $tabl_ressources sans utiliser $les_ressources .
Et il faut vraiment indenter ton code ! RE: Architecture pas optimisée - L'Omniscient - 05-04-2016 Effectivement c'est mieux RE: Architecture pas optimisée - niahoo - 05-04-2016 Tu devrais utiliser des booléens au lieu de "faux" .Bon mais sinon pourquoi tu n'envoies pas tes 3 ressources dans la même requête ? Pourquoi faire 1 par 1 si de toute façon l'utilisateur n'intervient pas dans le processus ? RE: Architecture pas optimisée - L'Omniscient - 05-04-2016 Parce que sinon elles sont stockée en JS en attendant et tu peux modifier comme tu veux :/ Là il n'y a pas le temps de les modifier puisque dès que tu cliques elles sont envoyées dans l'AJAX. (Enfin, il me semble que c'est plus sécurisé). RE: Architecture pas optimisée - Prélude - 05-04-2016 Juste une astuce pour les tableaux (il y aurait certainement quelques autres points à revoir) : Code PHP :
RE: Architecture pas optimisée - niahoo - 05-04-2016 Ajax est fait avec javascript, donc si je peux modifier tes données stockées en javascript, je peux modifier les requêtes Ajax. Il y a même des extensions pour ça, inutile d'aller toucher au javascript. Mais ça ne répond pas à ma question : est-ce que le joueur clique 3 fois, ou bien 1 seule fois ? Si 1 seule fois, pourquoi fais-tu l'envoi en 3 étapes ? RE: Architecture pas optimisée - L'Omniscient - 05-04-2016 Ah les trois conditions ? C'est un clic, et les trois sont exécutées (parfois une seule ou deux ressources seulement et pas trois, d'où les ifs). Par contre quand tu te déplace à nouveau et que tu récolte à nouveau, les trois conditions sont encore une fois exécutées Ah merci Prélude. En fait j'ai l'habitude des boucles JavaScript avec la variable $a dans la boucle ^^ Tiens j'avais pas vu ton premier message niahoo, le code est indenté mais quand j'ai posté ça m'a tout désindenté. (Bon tous mes codes sont pas tous bien indentés par contre ) Et j'ai pas compris le coup du tableau. RE: Architecture pas optimisée - niahoo - 05-04-2016 ben tu fais foreach($les_ressources as $la_ressource) mais tu n'utilises pas $la_ressource , du coup ça sent le bug.Et sinon, si 1 click => 3 requêtes ajax et ben tu dois facilement pouvoir transformer ça en 1 click => 1 requete ajax contenant des infos pour 1, 2 ou 3 ressources et ainsi diviser le temps de traitement par 3 quasiment. RE: Architecture pas optimisée - L'Omniscient - 05-04-2016 Pardon j'ai fais une connerie, j'ai modifié quelques variables en copiant collant, et j'ai modifié une variable par erreur, en gros ça donne ça avec les variables placées aux bons endroits : foreach($les_ressources as $la_ressource){ $z = $z +1; $tabl_ressources[$z] = array("id" => $la_ressource["id"]) |