05-04-2016, 06:09 PM
(Modification du message : 05-04-2016, 06:24 PM par L'Omniscient.)
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 ?
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 :
$(document).ready(function(){
$.ajax({
url : 'AJAX.php',
type : 'POST',
data : dataAjax,
dataType : 'text',
error : function(){
alert('Vous avez été deconnecté de Internet. Vérifiez votre connexion, et rechargez votre page.');
alert('Vous avez été deconnecté de Internet. Vérifiez votre connexion, et rechargez votre page.');
};
});
})
Après 1 collecte de ressource, la page AJAX est cherché et le code suivant est effectué :
$les_ressources = $bdd->prepare('SELECT * FROM les_inventaires WHERE id_du_joueur = ?');
$les_ressources->execute(array($ID));
$z = 0;
foreach($les_ressources as $la_ressource){
$z = $z +1;
$tabl_ressources[$z] = array("id" => $tabl_ressources["id"], "lobjet" => $tabl_ressources["lobjet"], "la_quantite" => $tabl_ressources["la_quantite"]);
}
$resultat1 = " ";
$resultat2 = " ";
$resultat3 = " ";
if (!isset($tabl_ressources)) {
$resultat1 = "faux";
$resultat2 = "faux";
$resultat3 = "faux";
}
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.
if(isset($_POST['ressour3'])){
$ressour3 = strip_tags($_POST['ressour3']);
$quantit3 = strip_tags($_POST['quantit3']);
if ($quantit3 > 4) {
return;
}
$a = 0;
foreach($tabl_ressources as $insertion_objet){
$a++;
if ($ressour3 == $tabl_ressources[$a]["lobjet"]) {
$add = $tabl_ressources[$a]['la_quantite'] + $quantit3;
$insertion_objets_3 = $bdd->prepare('UPDATE les_inventaires SET la_quantite = "'.$add.'" WHERE id_du_joueur = "'.$id.'" AND lobjet = "'.$ressour3.'"');
$resultat3 = " ";
break;
} else {
$resultat3 = "faux";
}
}
if ($resultat3 == "faux") {
$insertion_objets_3 = $bdd->prepare('INSERT INTO les_inventaires (lobjet, la_quantite, id_du_joueur)
VALUES ("'.$ressour3.'", "'.$quantit3.'", "'.$id.'")');
}
$insertion_objets_3->execute();
}
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 ?