Exécution de la fonction Ajax avant le déchargement
Dans les scénarios de développement Web, il est souvent nécessaire d'effectuer certaines actions avant le déchargement d'une page, telles que comme supprimer une ligne dans une base de données. Cet article fournit une solution pour exécuter une fonction Ajax sur l'événement "beforeunload" du navigateur, démontrant comment surmonter la nature asynchrone par défaut des requêtes Ajax.
L'extrait de code fourni initialise le gestionnaire d'événements "beforeunload" à l'aide de JavaScript, qui appelle la fonction "closeSession". Dans cette fonction, une requête Ajax est effectuée à l'aide de jQuery pour envoyer une requête GET à un script PHP. Cependant, la requête Ajax n'a pas réussi à déclencher la suppression de la ligne de la base de données car elle était par défaut asynchrone.
Pour résoudre ce problème, le script PHP contient une chaîne de requête qui exécute l'instruction "DELETE" pour supprimer la ligne correspondante du tableau "file d'attente". cependant, l'événement "beforeunload" du navigateur n'attend pas la fin des processus asynchrones avant de s'exécuter.
Pour résoudre ce problème, une solution consiste à définir l'option "async" dans les paramètres Ajax sur "false", garantissant que le Le navigateur attend la fin de la requête Ajax avant de poursuivre le processus de déchargement. Bien que cela puisse résoudre le problème dans certains navigateurs, cela ne peut pas garantir un comportement cohérent sur tous les navigateurs.
Pour des approches alternatives pour gérer les événements « beforeunload » et les requêtes Ajax, reportez-vous à la discussion dans le lien suivant :
http://api.jquery.com/unload/#dsq-comment-body-132164390
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!