De l'utilisation de "Onbeforeunload"
Bonjour,
J'ai problème avec la fonction onbeforeunload. J'ai créé un site dont la page principale contient des boutons qui peuvent générer un ou plusieurs pop up si l'on clique dessus. Jusque là tout va bien.
Ces pop up affichent des graphiques à partir de fichiers créés dynamiquement à l'ouverture de ces pop up.
Mon soucis est le suivant, lorsque l'utilisateur clique sur la croix je souhaite que le fichier généré soit détruit. Voici le code javascript qui permet cela (j'utilise de l'ajax pour supprimer les fichiers à l'aide du fichier php "supprimer_indicateur.php") :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
|
<script type="text/javascript">
function toto()
{
/*Traitement AJAX*/
new Ajax.Request('supprimer_indicateur.php',
{
method:'POST',
parameters: {
NumPage: NumPage,
NumIndic: NumIndic,
},
onSuccess: function(transport){
},
onLoading:function(transport) {
},
onFailure: function()
{
alert("Il y a eu une erreur!");
}
});
//alert("toto2");
}
window.onbeforeunload = function (){toto()};
</script> |
Le comble, c'est que lorsque je décommente alert("toto2") tout va pour le mieux mais je dois valider les message box "toto2". Par contre, si je le laisse tel quel, j'ai un comportement instable. Imaginons que j'ouvre 3 pop ups (donc 3 fichiers générés), à la fermeture il peut me rester un fichier non supprimé...
Une idée sur ce problème?
Merci d'avance,
Ben
[Résolu] Voici la réponse
Lorsque je laisse commenté les alert, 2 cas de figures se présentent: sur une machine puissante, les requêtes AJAX ont le temps d'être exécutées sur un vieux PC portable non.
Donc j'exécute les requêtes en mode asynchrone ce qui stoppe l'exécution du script jusqu'à la fin de la requête AJAX (comme les alert sauf que le script reprenait sur clic du user) et ça marche.
Tchussss!