jQuery: Abandonner automatiquement AjaxRequests à la page de déchargement?
Merci pour la lecture.
J'ai remarqué que si j'ai une page qui a un ou plusieurs requêtes ajax ouvrir, et que je clique sur un lien pour une page, ou de l'actualiser, il faudra attendre pour les requêtes ajax pour terminer avant le déchargement.
Ce n'est pas un problème, mais si la demande prend un certain temps, il peut être.
Je suis à la recherche de quelque chose comme:
$(window).bind("beforeunload", function() {AjaxRequest.abort();});
automatiquement abandonner les demandes avant de les décharger, mais pas tout à fait sûr de savoir comment trouver les requêtes ajax. Seraient-ils sous la fenêtre quelque part?
source d'informationauteur Eli | 2009-03-01
Vous devez vous connecter pour publier un commentaire.
La $.ajax() jQuery méthode retourne l'Objet XMLHttpRequest. Cela signifie que vous pouvez appliquer des méthodes standard sur l'objet, comme abort().
Pour décharger utiliser le construit en décharger jQuery cas de la méthode.
Le code suivant est testé et abandonne tous les encours de jQuery ajax demandes sur la page de décharger dans Chrome, mais il est utilisé par Edge et IE à l'aide de clients aussi bien sans erreur.
Mettre la suite de la première jQuery
ready
gestionnaire:Et de mettre ce quelque part accessible:
Je viens d'avoir ce problème, j'ai été faire une longue boucle en PHP qui est appelé à partir de $.ajax. Ma solution a été d'ajouter session_write_close(); avant la boucle longue.
Ma théorie est, Chrome demandes de la page suivante avant l'annulation de l'arrière-plan des requêtes ajax. Si votre requête ajax est la même _SESSION que la page que vous êtes à naviguer à travers ET DE, alors vous avez un blocage avant même votre première ligne de code PHP est frappé.
Pense que vous avez besoin fenêtre.onunload événement plus AjaxRequestX = $.obtenir(...) pour chaque demande, peut-être de garder les objets dans le tableau et aller à travers eux le décharger.
Vous avez à persister à vous tous requête ajax et quand la page est en cours de rechargement annuler toutes les demandes. Exemple de
quelque part dans votre code
En outre, vous pouvez pop fait des demandes à l'aide de $.ajaxSetup avec des événements ajaxStart ajaxStop, mais sa vous