Besteht eine Verbindung ins Internet?
TobiasDreissig
- javascript
0 Der Martin0 molily
0 molily0 Der Martin0 molily
Hallo,
Ich möchte eine HTML-Oberfläche machen die normalerweise auf Dateien im Internet zugreift. Sollten diese Dateien jedoch im Offlinemodus nicht verfügbar sein soll kein "Not found" Meldung kommen sondern eifnach eine andere Datei aufgerufen werden.
Hat jemand ne Idee wie man per Javascript herausfinden kann ob eine Verbindung ins Internet besteht bzw. ob der Zugriff auf einen bestimmten Pfad funktioniert oder nicht?
Gruß Tobias
Hallo Tobias,
Ich möchte eine HTML-Oberfläche machen die normalerweise auf Dateien im Internet zugreift. Sollten diese Dateien jedoch im Offlinemodus nicht verfügbar sein soll kein "Not found" Meldung kommen sondern eifnach eine andere Datei aufgerufen werden.
interessante Idee, aber ...
Hat jemand ne Idee wie man per Javascript herausfinden kann ob eine Verbindung ins Internet besteht bzw. ob der Zugriff auf einen bestimmten Pfad funktioniert oder nicht?
nein, das kann nicht funktionieren. Javascript hat keine Möglichkeiten, außerhalb des momentan geladenen Dokuments großartige Nachforschungen anzustellen. Du kannst mit Javascript quasi einen Versuchsballon loszulassen, also testweise eine Bild-Ressource von dem Server abrufen, den du überprüfen willst, und dann die Events onload und onerror überwachen. Aber du bist dann der Implementierung von Browser und OS ausgeliefert. Kann sein, dass der Browser z.B. im Offline-Modus sofort meldet "is nich, die URL existiere nicht"; kann auch sein, dass das OS ganz automatisch einen Einwahlvorgang ins Internet startet und danach alles okay ist - aber das wolltest du ja nicht wissen.
Was du vorhast - also nur mal sehen, ob aktuell eine Internet-Verbindung besteht - lässt sich IMHO nur auf Systemebene realisieren, und selbst da sehr schwierig, weil man eben schon bei der Abfrage u.U. ungewollt einen Verbindungsaufbau anstößt.
Ciao,
Martin
Hallo,
Kann sein, dass der Browser z.B. im Offline-Modus sofort meldet "is nich, die URL existiere nicht"; kann auch sein, dass das OS ganz automatisch einen Einwahlvorgang ins Internet startet und danach alles okay ist
Ein kurzer Test zeigt, dass IE und Firefox ein error-Event senden und Opera ein Dialog anzeigt, ob man in den Online-Modus schalten will. Wenn man dann aber »Nein« wählt, wird kein Error-Event gefeuert.
Es gibt auch bei manchen Browsern navigator.onLine, was aber meines Wissens auch nur diesne Modus wiederspiegelt.
- aber das wolltest du ja nicht wissen.
Genau. Offline-Modus ist ja nochmal was anderes als offline. Die meisten Browser auf Offline-Rechnern befindet sich standardmäßig im Online-Modus, und auf einem Online-Rechner kann ich meinen Browser in den Offline-Modus versetzen...
Mathias
Hallo,
Hat jemand ne Idee wie man per Javascript herausfinden kann ob eine Verbindung ins Internet besteht bzw. ob der Zugriff auf einen bestimmten Pfad funktioniert oder nicht?
Testweise ein Bild vom Server vorladen: http://javascript.jstruebig.de/javascript/42/
Mathias
Hallo Mathias,
Testweise ein Bild vom Server vorladen: http://javascript.jstruebig.de/javascript/42/
diese Methode hatte ich ja selbst schon angedeutet.
Sie hat aber einen Schönheitsfehler:
a) Wird die Verbindung über einen Router (separater PC oder kompakter DSL-Router) hergestellt, wird schon allein durch die Abfrage die Verbindung aufgebaut.
b) Bei einem Windows-PC mit Dialup-Verbindung (Analog-Modem, ISDN, DSL-Modem direkt am PC) wird durch die Abfrage ebenfalls automatsich eine Verbindung hergestellt. Der einzige Unterschied zu a) ist, dass der Benutzer (konfigurationsabhängig) den Verbindungsaufbau bestätigen oder abbrechen kann.
Egal wie, die Wahrscheinlichkeit ist also sehr groß, dass deine Abfrage das Ergebnis "ja, online" liefert, obwohl das vor der Abfrage nicht der Fall war.
Ciao,
Martin
Hallo,
Sie hat aber einen Schönheitsfehler:
Gut, das ist ein Umstand, den man beachten muss. Ob es ein Feature oder ein Fehler ist, hängt von der jeweiligen Anwendung im Einzelfall ab.
Wenn ein lokales Script Internetunterstützung benötigt, ist es i.d.R. gewünscht, dass sich automatisch eine Internetverbindung aufbaut, damit der Zugriff gelingt.
Mathias