Ik heb een formulier dat met behulp van AJAX wordt verzonden wanneer de pagina verlaten wordt. Het volgende stukje code zorgt hiervoor:
Werkt prima totdat je dezelfde pagina opnieuw aanroept. De pagina wordt dan verlaten, de vraag komt in beeld, je kiest voor "ja" en de veranderingen worden opgeslagen. Echter is de refresh zo snel (tijdens unload?) dat de oude gegevens weer ingevuld worden. Pas bij een nieuwe handmatige refresh komen de opgeslagen gegevens netjes naar voren.
Hoe kun je ervoor zorgen dat de pagina wacht met laden totdat alles afgehandelt is? Een soort van timer zou misschien een optie zijn, maar je kunt in dat geval moeilijk 100% zekerheid bieden dat de juiste gegevens verschijnen denk ik.
code:
1
2
3
4
5
6
| function unload () {
if (veranderingen && !errors) {
if (confirm("Wilt u de gemaakte wijzigingen opslaan?"))
saveForm();
}
} window.onunload = unload; |
Werkt prima totdat je dezelfde pagina opnieuw aanroept. De pagina wordt dan verlaten, de vraag komt in beeld, je kiest voor "ja" en de veranderingen worden opgeslagen. Echter is de refresh zo snel (tijdens unload?) dat de oude gegevens weer ingevuld worden. Pas bij een nieuwe handmatige refresh komen de opgeslagen gegevens netjes naar voren.
Hoe kun je ervoor zorgen dat de pagina wacht met laden totdat alles afgehandelt is? Een soort van timer zou misschien een optie zijn, maar je kunt in dat geval moeilijk 100% zekerheid bieden dat de juiste gegevens verschijnen denk ik.