Sponsored Post: HTML5-Anwendungen – online oder offline?

Sponsored Post (Was ist das?)
Sponsored Post: HTML5-Anwendungen – online oder offline?
HTML5 bietet zahlreiche Möglichkeiten für offline-fähige Anwendungen, beispielsweise lokale Speicherung, Application Cache und lokale Datenbanken, doch vor all dem steht die alles entscheidende Frage: online oder offline?

Die Antwort auf diese Frage verbirgt sich in der Eigenschaft navigator.onLine. Hat diese den Wert false, so ist der Client sicherlich offline, oder zumindest der Browser im Offline-Modus. Nicht ganz so einfach ist es allerdings wenn der Wert true vorliegt. In der Theorie heißt das, dass der Benutzer online ist. Doch diese Information ist mit Vorsicht zu genießen, denn genau wie ein mehrere Balken anzeigender Empfangsstatus auf einem Smartphone keinen Internetzugang verspricht (beispielweise innerhalb von großen Menschenmassen wie etwa bei Konzerten), ist ein positiver Bescheid von navigator.onLine noch keine hundertprozentige Garantie, dass tatsächlich eine Internetverbindung möglich ist. Aktuelle Browser orientieren sich hierzu dankenswerterweise an den Informationen des Betriebssystems, so dass die Angabe zumindest häufig korrekt ist.

onofflineUm den Statuswechsel zu überwachen, also den Übergang von online zu offline und umgekehrt (etwa: Nutzer sitzt im Zug, dieser fährt in einen Tunnel und wieder hinaus), wäre ein permanentes Überprüfen von navigator.onLine mit JavaScript-Bordmitteln wie setInterval() denkbar, doch es geht auch einfacher.

Wechselt der Wert von navigator.onLine auf true oder false, werden die Ereignisse online beziehungsweise offline ausgelöst. Der folgende Code fängt dieses ab und geht auch auf den Sonderfall ein, dass der Internet Explorer bis Version 8 diese Ereignisse nicht im window-Objekt abfängt, sondern in document.body:

if (window.addEventListener) 
   {
   window.addEventListener("online", onlineHandler, false);
   window.addEventListener("offline", offlineHandler, false);
   } 
else if (window.attachEvent) 
   {
   document.body.attachEvent("ononline", onlineHandler);
   document.body.attachEvent("onoffline", offlineHandler);
   }

Ein kleines Beispiel soll sowohl die Eigenschaft als auch die Event-Handler demonstrieren. Die Kompatibilität mit älteren Browsern wird hierbei nicht berücksichtigt, dafür aber setzt der Code auf das neue HTML5-Element <output>. Dort gibt man den aktuellen Online-Zustand aus und aktualisiert die Ansicht sobald sich in Sachen Netzwerkverbindung etwas ändert. Die Abbildung Oben zeigt einen sich im Offline-Modus befindenden Internet Explorer 10 unter Windows 8 (Release Preview) nebst entsprechender JavaScript-Anzeige.

<!DOCTYPE html>
<html>
   <head>
   <title>HTML5</title>
   <style>
      .online { background-color: green; }
      .offline { background-color: red; }
   </style>
   <script>
   function handler() {
      document.getElementsByTagName("output")[0].innerHTML =
         (navigator.onLine) ? "ONLINE" : "OFFLINE";
      document.getElementsByTagName("output")[0].className =
         (navigator.onLine) ? "online" : "offline";
      }
###
      window.onload = function() {
         window.addEventListener("online", handler, false);
         window.addEventListener("offline", handler, false);
         handler();
      };
###
      </script>
   </head>
   <body>
      <output defaultValue="?">
   </body>
</html>

Weitere Artikel zu HTML5 und Apps

Empfehlen

bewerten
VN:F [1.9.22_1171]
Bewertung: 1.6/5 (10 Bewertungen)
Das interessiert dich bestimmt auch
Deine Meinung

Bitte melde dich an!

Du musst angemeldet sein, um einen Kommentar schreiben zu können.

Jetzt anmelden

Kennst Du schon unser t3n Magazin?

t3n 32 jetzt kostenfrei probelesen! Alle Inhalte des t3n Magazins Diesen Hinweis verbergen