Bonjour, j'ai un petit souci Ajax.
Je suis en train de créer un jeu, comme beaucoup d'autres, et j'y mets en place une taverne, un lieu de discussion. Je développe en php, mysql et ajax. On accède à la taverne par un pop up et tout fonctionne à peu près correctement jusqu'au moment du départ. Lors du départ, j'ai mis en place une requête ajax pour que la personne qui part soit retirée des présents dans la taverne de la base de données mais si ça fonctionne sous IE et Mozilla, ça ne fonctionne pas sous Safari. Je pensais jusqu'ici que Safari ne reconnaissait pas le onbeforeunload mis dans mon body, mais en fait si... Par contre, il n'exécute a priori pas la requête Ajax. De plus, j'ai constaté sur le serveur free (j'y teste mon jeu en grandeur réelle) qu'après la sortie de la taverne, le serveur était dans les choux.
Je me pose donc les questions suivantes : peut-on lancer une requête ajax lors de la sortie d'une pop up, avec Safari ? Que se passe-t-il si la requête n'est pas encore terminée et que le pop up est déjà fermé ? Et est-cela qui pose problème sous free, beaucoup plus lent que chez moi ?
Pour info, voici mon code, enfin, la partie intéressante :
Merci pour votre aide.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 <script type="text/javascript" > function quitter() { new Ajax.Request('supprimerpresence.php', {method : 'POST', postBody : ''}); } </script> <body onLoad='historique(); presents();' onbeforeunload='quitter();' > <form method="post" action="taverne.php" onsubmit="return ajoutmessage(<?php echo "'" . $_SESSION['pseudo'] . "'"; ?>, document.getElementById('message').value);"> <p> <input type="text" name="message" id="message" value=""> <input type='submit' name='envoyer' value='envoyer' /> </p> </form>
Partager