Seite aktualisieren, wenn Focus zurückkommt
Linuchs
- sonstiges
1 Tabellenkalk0 Jörg Reinholz0 1UnitedPower0 1UnitedPower0 ChrisB
0 MudGuard
Hallo,
ich habe folgendes Problem: Ein Internet-Besucher schaut sich den Kalender seiner Stadt an, vermisst einen Termin, klickt auf den Link zum anonymen Eingabeformular und trägt ihn ein.
Nun geht er zurück auf die Übersicht, entweder mit der Zurück-Schaltfläche des Browsers oder zum alten Fenster - sein Termin fehlt noch immer und er gibt ihn erneut ein.
Welche Möglichkeit hat eine Webseite, zu erkennen, dass sie wieder im Focus steht und ggf. Informationen nachladen muss? Javascript "onfocus" gilt wohl nur für Felder?
Die betr. Webseiten ständig neu laden möchte ich nicht, das gibt zu viel und nutzlosen traffic.
Linuchs
Hallo,
ich habe folgendes Problem: Ein Internet-Besucher schaut sich den Kalender seiner Stadt an, vermisst einen Termin, klickt auf den Link zum anonymen Eingabeformular und trägt ihn ein.
Warum bekommt er hier keine eindeutige Bestätigung, dass der Termin eingetragen ist?
Nun geht er zurück auf die Übersicht, entweder mit der Zurück-Schaltfläche des Browsers oder zum alten Fenster - sein Termin fehlt noch immer und er gibt ihn erneut ein.
Warum bekommt er keine Rückfrage, Termin existiert bereits?
Gruß Kalk
Hier könnte "Ajax" helfen.
Das Formular wird als "inline-popup" oder section in der Seite gezeigt und nach dem Eintragen des Termins wird vom Server die neue Terminliste gesendet und mit JS in der Seite aktualisiert, das Formular wieder ausgeblendet oder gelöscht.
Du kannst Dir das ansehen. Melde Dich hier an:
http://www.fastix.org/test/selfhtml_login/login.php
Benutzer: adm Passwort: GeHeim
Und klicke dann auf:
"mal nachsehen, wie weit ich mit den Administrationswerkzeugen bin."
(Wirklich kaputt machen kannst Du nichts.)
Jörg Reinholz
Hakuna matata!
Welche Möglichkeit hat eine Webseite, zu erkennen, dass sie wieder im Focus steht und ggf. Informationen nachladen muss? Javascript "onfocus" gilt wohl nur für Felder?
Wenn der Nutzer durch den Zurück-Button auf deine Seite gelangt wird das popstate
-Ereignis ausgelöst. Darauf könntest du lauschen und dann per AJAX die Inhalte aktualisieren:
// AJAX-Kram vorbereiten
var request = new XMLHttpRequest();
request.open('GET', 'termine.html');
request.addEventListener('load', function ( loadEvent ) {
document.querySelector('#termine').innerHTML = loadEvent.responseText;
});
// Auf den Zurück-Button lauschen
window.addEventListener('popstate', function () {
// AJAX-Anfrage auslösen
request.send();
});
Hakuna matata!
PS: Das funktioniert auf jeden Fall, wenn man vorher die Browserhistorie mit pushstate() selber bearbeitet hat. Ob es auch funktioniert, wenn die Browserhistorie auf ganz gewöhnliche Weise manipuliert wurde, müsstest du testen.
Hi,
Das funktioniert auf jeden Fall, wenn man vorher die Browserhistorie mit pushstate() selber bearbeitet hat. Ob es auch funktioniert, wenn die Browserhistorie auf ganz gewöhnliche Weise manipuliert wurde, müsstest du testen.
Wenn es sich um letzteres handelt, dann wäre es ja ein Caching-Problem – und dann sollte die Lösung auch dort ansetzen.
MfG ChrisB
Hakuna matata!
Das funktioniert auf jeden Fall, wenn man vorher die Browserhistorie mit pushstate() selber bearbeitet hat. Ob es auch funktioniert, wenn die Browserhistorie auf ganz gewöhnliche Weise manipuliert wurde, müsstest du testen.
Wenn es sich um letzteres handelt, dann wäre es ja ein Caching-Problem – und dann sollte die Lösung auch dort ansetzen.
Stimmt, der Walt vor lauter Bäumen.
Hi,
Welche Möglichkeit hat eine Webseite, zu erkennen, dass sie wieder im Focus steht
Muß sie das erkennen? Reicht es nicht, einen expires-Header mit entsprechend kurzer Zeit zu definieren? Ggf. mit einem Cache-Control-Header ergänzt.
cu, Andreas