Ik heb een systeem gebouwd wat gebruik maakt van een API om de status van verschillenden apparaten op te halen. Na het inloggen kom je als eerste op de statuspagina. De status wordt opgehaald via een asynchrone AJAX call, zodat de gebruiker geen last heeft van het laden.
Het probleem! Het kan voorkomen dat er bepaalde services niet draaien of de API is tijdelijk niet beschikbaar (downtime) waardoor de status niet opgevraagd kan worden. Als dat het geval is dan duurt het 60 seconden voordat ik melding krijg dat er iets niet bereikbaar is. Nu is dat geen probleem, als ik na 15 seconden nog geen antwoord heb dan krijg de gebruiker al een melding te zien dat ie het later nog eens moet proberen.
Als de gebruiker de pagina wilt verversen en de AJAX call is nog actief dan blijft de pagina laden totdat de call afgerond is. Ik maak gebruik van jquery en wilde het op onderstaande manier oplossen:
De ajax functie van jquery zou volgens de documentatie een xmlHTTP object terug moeten geven. En die bevat weer een abort() functie om de boel af te breken. Helaas werkt mijn oplossing niet en blijft de pagina laden tot de AJAX call voltooid is.
Het probleem! Het kan voorkomen dat er bepaalde services niet draaien of de API is tijdelijk niet beschikbaar (downtime) waardoor de status niet opgevraagd kan worden. Als dat het geval is dan duurt het 60 seconden voordat ik melding krijg dat er iets niet bereikbaar is. Nu is dat geen probleem, als ik na 15 seconden nog geen antwoord heb dan krijg de gebruiker al een melding te zien dat ie het later nog eens moet proberen.
Als de gebruiker de pagina wilt verversen en de AJAX call is nog actief dan blijft de pagina laden totdat de call afgerond is. Ik maak gebruik van jquery en wilde het op onderstaande manier oplossen:
JavaScript:
1
2
3
4
5
6
7
8
9
10
| var x= null; window.onunload = function() { // een hoop checks x.abort(); } var x = $.ajax({ //code }); |
De ajax functie van jquery zou volgens de documentatie een xmlHTTP object terug moeten geven. En die bevat weer een abort() functie om de boel af te breken. Helaas werkt mijn oplossing niet en blijft de pagina laden tot de AJAX call voltooid is.