Linuchs: Seite aktualisieren, wenn Focus zurückkommt

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

  1. 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

  2. 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

  3. 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();
    });
    
    --
    “All right, then, I'll go to hell.” – Huck Finn
    1. 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.

      --
      “All right, then, I'll go to hell.” – Huck Finn
      1. 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

        --
        Kids these days just don’t get ASCII art any more – it’s all UTF-this and Unicode-that with those youngsters …
        1. 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.

          --
          “All right, then, I'll go to hell.” – Huck Finn
  4. 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

    --
    Warum nennt sich Andreas hier MudGuard? O o ostern ... Fachfragen per Mail sind frech, werden ignoriert. Das Forum existiert.