Jquery ajax: hoe weten wanneer de request werd afgebroken

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • SideShow
  • Registratie: Maart 2004
  • Laatst online: 16-06 15:55

SideShow

Administrator

Topicstarter
Hallo

Ik heb het volgende probleem: op mijn webpagina heb ik een lijst die wordt opgevuld met ajax. Deze ajax-request start in het document ready event van jquery.

Het probleem is: als de gebruiker naar een andere pagina navigeert tijdens dat de request nog aan het lopen is, wordt deze gewoon afgebroken en kom je in de .fail method callback van jQuery...

Normaal gebruik ik deze method om een simpele "Er is een fout opgetreden" te vertonen in de lijst, maar ik zou graag het verschil kunnen zien tussen een echte ajax fail (server niet bereikbaar, serverfout, timeout, ...) en een fail omdat de user de request eigenlijk heeft afgebroken door de pagina te "verlaten". Dat ziet er namelijk vreemd uit voor een gebruiker die nog een fractie van een seconde die foutboodschap te zien krijgt...

In de statuscodes van het xmlhttp object vind ik niet direct iets bruikbaars die het verschil aanduidt

Enige hulp of tips om licht op dit onderwerp te schijnen?

Acties:
  • 0 Henk 'm!

  • ZpAz
  • Registratie: September 2005
  • Laatst online: 11-09 21:48
Je zou op de onunload van de body een variabele kunnen setten. Als deze bv true is dat je dan geen errors toont want dan is de gebruiker van de pagina aan het weg navigeren.

Tweakers Time Machine Browser Extension | Chrome : Firefox


Acties:
  • 0 Henk 'm!

  • R4gnax
  • Registratie: Maart 2009
  • Laatst online: 06-09 17:51
Als een jqXHR object de rejected status krijgt door het afbreken v/d connectie is de textStatus parameter die naar de fail callbacks mee doorgestuurd wordt als het goed is op "abort" gezet.

Zo niet, dan kun je altijd nog proberen om het unload event af te vangen en daarin lopende requests handmatig af te breken via de abort method op de jqXHR objecten. Daarmee wordt de textStatus parameter gegarandeerd op "abort" gezet.
ZpAz schreef op dinsdag 22 mei 2012 @ 14:52:
Je zou op de onunload van de body een variabele kunnen setten. Als deze bv true is dat je dan geen errors toont want dan is de gebruiker van de pagina aan het weg navigeren.
Sluit dan de lopende requests met de hand. Dat is toch echt wat netter...

[ Voor 36% gewijzigd door R4gnax op 22-05-2012 20:00 ]


Acties:
  • 0 Henk 'm!

  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij