12
votes

Abandonner une jQuery getjson xmlhttprecest

s'avère que c'était un artefact d'un bug de Firebug. La demande AJAX a été annulée, mais Firebug continuait de le signaler comme actif. Détails Ici .


J'ai longtemps exécuté XMLHTTPQUESTS et je dois être capable de les abandonner dans certaines circonstances.

I Configurez la demande de manière normale: xxx

plus tard, je veux abandonner cette demande, semble simple: xxx

Quand je regarde dans Firebug, je le vois est toujours en cours d'exécution ...

i console.log dehors la valeur d'Ajax Juste avant d'essayer de l'abandonner, il confirme que sa valeur est et XMLHTTPRequête (avec un prérey-est de 0).

Y a-t-il des restrictions sur la manière et quand Abort () incendie sur un XMLHTTPQUEST?


0 commentaires

4 Réponses :


2
votes

appeler Abort réinitialise l'objet; Le gestionnaire d'événements OnReadyStatechange est supprimé et le préreyStat est remplacé par 0 (inaitalisé).

Je ne pense pas que cela annule la demande elle-même, elle ignore simplement toute réponse (manipulation du gestionnaire d'événements) - mais je ne l'ai pas encore essayé pour le moment.

Mais cela vous permettra de réutiliser l'objet - peu importe si le navigateur a toujours du fil travaillant avec l'ancienne demande.


2 commentaires

Aah !. Le problème est que je me retrouve avec trop de demandes HTTP et que le navigateur est suspendu, alors je dois le mettre fin à ...


La citation provient de la docu Microsoft Javascript. De cela, je suppose que cela dépend fortement de la mise en œuvre du navigateur Qu'est-ce qui se passe exactement. La plupart des navigateurs essaieront probablement de finir gracieusement - ainsi que les connexions pourraient toujours être debout pendant un certain temps jusqu'à ce qu'ils soient enfin fermés - mais c'est juste une supposition.




2
votes

Vous pouvez regarder le JSONP-Plugin Avec ce plugin, vous avez la possibilité d'abandonner manuellement la demande. Jetez également un coup d'œil à "Une note de garde" chez IBM Bibliothèque:

Tout d'abord, il n'y a pas de manipulation d'erreur pour les appels JSONP. Si l'insertion de script dynamique fonctionne, vous êtes appelé; Sinon, rien ne se passe. Cela échoue simplement silencieusement. Par exemple, vous ne pouvez pas attraper une erreur 404 du serveur. Vous pouvez non plus annuler ou redémarrer la demande.


0 commentaires

2
votes

Un autre excellent article sur la manipulation de cela se trouve ici: http://www.bennadel.com/blog/1500-catching-timeout-errors-with-jquery-powered-ajax.htm .

Je n'ai fait simplement convertit ma demande .Getjson à .ajax et a ajouté la manipulation du délai d'attente / des erreurs.

merci!


0 commentaires