Bandbreite der Internetanbindung ermitteln
Houyhnhnm
- javascript
0 Saui0 Der Martin0 Jörg Peschke0 Tom0 eddi0 at
Gibt es eine Möglichkeit, von JS aus die Bandbreite der Internetanbindung abzufragen, ohne selbst eine Messung durchzuführen?
Gibt es eine Möglichkeit, von JS aus die Bandbreite der Internetanbindung abzufragen, ohne selbst eine Messung durchzuführen?
Neeee wie stellst du dir das vor? - Also wenn da geht würds mich sehr wundern.
Aber erklär doch mal etwas genauer, vll kann dir dann jmd helfen
Saui
Moin,
Gibt es eine Möglichkeit, von JS aus die Bandbreite der Internetanbindung abzufragen, ohne selbst eine Messung durchzuführen?
nein, keine Chance. Ohne einen Versuch (z.B. eine bestimmte Ressource aus dem Internet abrufen und kucken, was passiert) hast du erst mal gar keine Möglichkeit.
Und selbst wenn du mit einem "Versuchsballon" ein Ergebnis hast, dann weißt du z.B., dass deine 10kB große Referenzdatei in 2.84s geladen wurde. Was sagt dir das nun? Dass meine Internetverbindung eine Bandbreite von 28kbps hat? Nein, es könnte ebensogut sein, dass der angefragte Server erst nach 2.5s reagiert hat, das Dokument dann aber in 0.3s übertragen wurde. Auf diese Weise erhältst du also keine wirklich verwertbare Information.
Schönen Sonntag noch,
Martin
Hallo Martin,
das mit der Bandbreite sehe ich nicht technisch, sondern aus Sicht des Benutzers meiner Seite - besser wäre es wohl, von effektiver Bandbreite zu sprechen.
Hintergrund: Eine DHTML-Seite mit einer Bildergalerie. Auf einer DSL-Verbindung und einem nicht gerade fußkranken Server ist alles kein Problem; bei einer Modem-Anbindung schon, denn ~1 min Ladezeit pro Seite ist da zu erwarten.
Für Modembenutzer könnte ich z.B. die Bildqualität weiter reduzieren, oder irgendwelche speziellen Hinweise geben. (Letzeres könnte man natürlich über ein Timeout hinbekommen, wenn die Ladezeit einen gewissen Wert überschreitet.)
Gruß, Houyhnhnm
Hello,
Für Modembenutzer könnte ich z.B. die Bildqualität weiter reduzieren, oder irgendwelche speziellen Hinweise geben. (Letzeres könnte man natürlich über ein Timeout hinbekommen, wenn die Ladezeit einen gewissen Wert überschreitet.)
Warum baust Du nicht "customized pages"?
Du kannst dem Besucher doch als Tool anbieten:
Wähle Deine Übertragungsqualität:
[ ] Modem mit maximal 19kBit/s
[ ] Modem mit maximal 34kBit/s
[ ] ISDN 1 Kanal
[ ] ISDN 2 Kanäle
[ ] DSL 1000 (1000/128)
[ ] DSL 2000 (2000/256)
...
Das merkst Du Dir dann als Benutzereinstellung.
Jemand, der nichts sagt, wird dann mit default ISDN(1) behandelt.
Dann ergibt eine Antwort nämlich für jeden, der davon abweicht, einen merklichen Mehrnutzen. Für Mehrnutzten ist man schon eher bereit, sich irgendwo anzumelden oder Cookies zuzulassen, als nur für Lau.
Harzliche Grüße vom Berg
http://www.annerschbarrich.de
Tom
Hallo Tom,
sowas habe ich mir auch schon überlegt - das ist zu technisch.
Meine Seite wendet sich an Ornithologen - da kann man erfahrungsgemäß keine technische Kompetenz erwarten.
Das Ganze muß automatisch gehen.
Ich denke, ich werde folgede Lösung versuchen:
Meine Seite enthält ~25 KB Skript-Code. Den werde ich dynamisch laden und die Übertragungszeit messen. Die gemessene Zeit gibt schon mal einen guten Anhaltspunkt, was von der Verbindung zu erwarten ist.
Gruß, Houyhnhnm
Hello,
Meine Seite wendet sich an Ornithologen - da kann man erfahrungsgemäß keine technische Kompetenz erwarten.
Das Ganze muß automatisch gehen.
Das glaube ich nicht.
Auch Ornithologen beschäftigen sich nicht ausschließlich mit Vögeln.
Die habe auch durchaus den Grips zu entscheiden, dass die Seite "zu langsam lädt" oder "zu schlecht aussieht"
Du könntest allerdings versuchen, beim Ladestart (also wenn der <HEAD>-Bereich beginnt) eine JavaScript-Variable "start" zu setzen, und diese dann mittels Script im <BODY>-Tag "onLoad" mit "stop" zu vergleichen. Wenn das zu lange dauert, blendest Du einen Text ein: "Seite wurde zu langsam geladen, soll auf Kosten der Qualität von Bildern und Darstellungen die Ladezeit verbessert werden?"
Ich wüsste nicht, warum das nicht funktionieren sollte.
Allerdings wäre es lästig, wenn das dann nicht benutzerorientiert gespeichert würde und die Frage immer wieder kommt, wenn mal ausnahmsweise eine "schlechte Leitung" besteht.
Harzliche Grüße vom Berg
http://www.annerschbarrich.de
Tom
hi,
Auch Ornithologen beschäftigen sich nicht ausschließlich mit Vögeln.
Sonst hätte der Berufszweig sicher erheblich mehr Zulauf.
gruß,
wahsaga
Hello wahsaga,
Auch Ornithologen beschäftigen sich nicht ausschließlich mit Vögeln.
Sonst hätte der Berufszweig sicher erheblich mehr Zulauf.
Ist doch erstaunlich, wie leicht Du zu unterhalten bist *ggg*
Harzliche Grüße vom Berg
http://www.annerschbarrich.de
Tom
Hi Tom,
Auch Ornithologen beschäftigen sich nicht ausschließlich mit Vögeln.
meinst Du jetzt Dativ Singular oder Plural?
Viele Grüße
Jörg
Hello Jörg,
Auch Ornithologen beschäftigen sich nicht ausschließlich mit Vögeln.
meinst Du jetzt Dativ Singular oder Plural?
Also, worüber Du wieder nachdenkst...
Beschäftige Dich doch lieber mit dem Thema als solches in der Praxis.
*scnr*
Harzliche Grüße vom Berg
http://www.annerschbarrich.de
Tom
Auch Ornithologen beschäftigen sich nicht ausschließlich mit Vögeln.
In den Kreisen gibt es sehr viele, die die 60 schon länger hinter sich haben - da kannst Du wirklich nicht erwarten, daß die laut aufjauchzen, wenn sie mit technischen Details der in diesen Kreisen nicht eben selten verhaßten Computer behelligt werden.
Moin!
In den Kreisen gibt es sehr viele, die die 60 schon länger hinter sich haben - da kannst Du wirklich nicht erwarten, daß die laut aufjauchzen, wenn sie mit technischen Details der in diesen Kreisen nicht eben selten verhaßten Computer behelligt werden.
Wer den Computer haßt, wird ihn sicher nicht freiwillig benutzen, um bei dir auf der Webseite irgendwelche Bilder zu betrachten - und sich dazu auch nicht zwingen lassen.
Warum wird "alter Mensch" eigentlich automatisch mit "haßt moderne Technik, weil: kann sie nicht bedienen" gleichgesetzt. Ich habe mehr technikbegeisterte Rentner und Fast-Rentner kennengelernt, als Technikhasser.
Zu deiner konkreten Frage: Ich halte absolut nichts davon, irgendeine Automatik zur Ladezeiterkennung einzubauen. Damit hilfst du nämlich niemandem!
Sorge dafür, dass deine Bilder hinsichtlich ihrer Bildgröße optimal sind. Also einen gutem Kompromiß zwischen JPEG-Kompression und Bildqualität darstellen.
Nutze Thumbnails. Biete Links zu verschiedenen Bildauflösungen an, benenne die Dateigrößen, die damit verbunden sind. Dann kann sich jedermann selbst entscheiden, welche Datei er haben will. Was nützt es einem technikfreundlichen Jung-Ornithologen, der nur ein Modem besitzt, weil er in der Pampa (mit vielen Vögeln um ihn herum) kein DSL kriegt, wenn er das absolute Lieblingsbild bei dir entdeckt, es aber nur als winzige Version und in miesester Qualität aufgezwungen kriegt, weil du der Meinung warst, er würde sich über Ladezeiten ärgern. Nein: Er ärgert sich dann vielmehr darüber, dass er auf deiner Webseite nicht das Bild kriegt, was er will. Eine für ihn tolle Fotografie als Bildschirmhintergrund in 1280*1024 in guter Qualität kostet vielleicht 0,5 bis 1 MB - will er die Downloadzeit investieren, sollte er das Bild unbedingt erhalten - und keine kleinere, höher komprimierte Version.
- Sven Rautenberg
Hallo Sven,
was die Computerhasserei in den Kreisen angeht, rede ich aus Erfahrung. Ich bin schon froh, wenn einige Kollegen, die gewöhnlich einen Bogen um die Kiste machen, von purer Neugier getrieben einen Blick auf den Bildschirm wagen.
Natürlich gibt es auch ältere Leute, die sich gerne mit der Computertechnik befassen - nur sind das in der Regel eben keine hochspezialisierten Vogelexperten.
Dazu kommt eine Besonderheit: Es handelt sich um Fotoserien, die das Verhalten von Eulen - bei Nacht aufgenommen - dokumentieren. Einzelbilder sind meist relativ langweilig, weil man die Entwicklung der 'Handlung' nicht gut überblicken kann. Deshalb sind 4 - 6 Fotos jeweils zu einer Galerieseite zusammengefaßt; eingeblendete Zeitstempel vermitteln einen Eindruck, wie schnell oder langsam alles ablief.
Mit Thumbnails ist da überhaupt nichts anzufangen.
Da sich meine Fotogalerie automatisch auf die jeweilige Fenstergröße skaliert, hat der Betrachter die Möglichkeit, ohne Wissen über technische Details meiner Anwendung die ihm genehme Bildgröße einzustellen. Die Bildqualität ist natürlich durch die Qualität der Bilddatei begrenzt.
Wenn ich die Leistungsfähigkeit der Leitung beurteilen kann, kann ich von vorn herein differenziert reagieren: Dem Benutzer einer schnellen DSL-Leitung brauche ich keine 10k-Jpgs anzubieten, während ich dem 56k-Modembenutzer den Tipp geben kann, sich entweder mit der schlechten Auflösung zufrieden zu geben, oder Wartezeiten von ~ 1 min (einen realistischen Wert kann man mit dem Wissen über die Leitungsqualität abschätzen!) je Seite in Kauf zu nehmen und auf die bessere Auflösung umzuschalten, oder - wenn ihm beides nicht gefällt - bei Gelegenheit eine schnelle Leitung bei Freunden zu benutzen.
Und diejenigen Jungornithologen, die gerne ein Hintergrundbild haben wollen, können ja auch das Kontaktformular benutzen...
Ich habe vorläufig nicht vor, die Seite öffentlich zugänglich zu machen. Sie ist im Moment paßwortgeschützt online und Interssierte erhalten die Zugangsdaten.
Gruß, Houyhnhnm
Hallo,
Es gab glaube ich mal für den Internet-Explorer irgend ein Objekt, mit dem man den "Connection Type" abfragen konnte. Allerdings funktioniert das dann NUR unter Windows, NUR unter dem IE und auch dann ist es nicht zuverlässig - denn Connection Type LAN kann z.b. DSL sein, aber auch ISDN oder Modem oder...
Wäre also bestenfalls ein heuristisches Maß, welches unter bestimmten Voraussetzungen darauf hindeuten KÖNNTE welche Geschwindigkeit du hast ;)
Gruss,
Joerg
Hallo Joerg,
Wäre also bestenfalls ein heuristisches Maß, welches unter bestimmten Voraussetzungen darauf hindeuten KÖNNTE welche Geschwindigkeit du hast ;)
Die alten 56k Modems könnte man damit vielleicht schon kriegen...
Die Kombination LAN mit Internetanbindung über ISDN dürfte wohl eher etwas exotisch sein. Es gibt natürlich auch noch diese Contergan-Flatrates am Breitbandkabel - die könnten über einen LAN-Adapter angeschlossen sein.
Obwohl nur für IE ist Dein Tipp bedenkenswert - ich kann mir gut vorstellen, daß überproportional viele Gelegenheits-Internet-Benutzer mit dem weitestverbreiteten Browser ins Netz gehen.
Gruß, Houyhnhnm
Hello,
die vereinbarte Bandbreite ist Deinem Modem (oder Router) bekannt.
Ein Modem hast Du auch bei DSL.
Die Modemsteuerung handelt bei Verbindungsaufnahme die Geschwindigkeit, mit der übertragen wird, aus. Das ist dann die Bitrate, in der Pakete übertragen werden. Im Internet kömmt dann noch dazu, wieviele Pakete pro Zeit überhaupt zur Verfügung stehen. Das hängt aber auch von den Request- und Response-Laufzeiten ab.
Mit JavaScript kommst Du an diese Informationen nicht heran, da Du dazu Zugriff auf die jeweilige Hardware und deren Systemvariablen haben musst.
Manche Kombigeräte (Modem+Router+Hub) haben aber eingebaute Tools, um die Daten über HTTP, SNMP über das Netzwerk oder USB abzufragen. Über HTTP geht es dann üblicherweise per Browser.
Harzliche Grüße vom Berg
http://www.annerschbarrich.de
Tom
Halo erstmal!
Gibt es eine Möglichkeit, von JS aus die Bandbreite der Internetanbindung abzufragen, ohne selbst eine Messung durchzuführen?
Es ist möglich einen Näherungswert zu bestimmen:
var a=new Date();
function schaetze(){
var b=new Date();
var c=10 /* Anzahl der Resourcen eines Dokuments,
dazu gehört das Dokument selbt, alle
Bilder, separat definierte StyleSheets
und Javascripte */
var s=50000 /* Gesamtgröße aller Resourcen in Byte */
var h=800 /* geschätze Gesamtgröße der Header für
Request und Response in Byte */
s=s+(c*h)
alert(((s / b.getTime() - a.getTime())/1000)+' B/s');
}
<body onLoad="schaetze()">
Gruß aus Berlin!
eddi
Hallo eddi,
genau nach dem Muster werde ich es machen.
Allerdings ist das die Meßmethode, von der ich wissen wollte, ob sie evtl. nicht nötig ist.
Gruß, Houyhnhnm
Hallo eddi
Es ist möglich einen Näherungswert zu bestimmen:
Und was ist, wenn ich die Seite schon einmal aufgrufen hatte, und ein Teil
oder alles aus meinem Browsercache kommt?
Auf Wiederlesen
Detlef
Hi,
Und was ist, wenn ich die Seite schon einmal aufgrufen hatte, und ein Teil
oder alles aus meinem Browsercache kommt?
Ich teste das (Coding: Systemvariable) mit einer Grafik, deren URL ich einen wechselnden Parameter anhänge. Da hat es sich was mit cachen ... ;->
Gruß, Cybaer
Hallo Cybaer
Und was ist, wenn ich die Seite schon einmal aufgrufen hatte, und ein Teil
oder alles aus meinem Browsercache kommt?Ich teste das (Coding: Systemvariable) mit einer Grafik, deren URL ich einen wechselnden Parameter anhänge. Da hat es sich was mit cachen ... ;->
Ich bezog mich auf das Scriptbeispiel, das die komplette Seite misst, da
wäre es bestimmt nicht so toll, das cachen generell zu unterbinden.
Dein Script misst auch sehr präzise ;), von "die Verbindungsgeschwindigkeit
war nicht zu ermitteln" über 250kbps bis 727kbps war so ziemlich alles
vertreten (bei 6000er DSL).
Es kann nur einen sehr groben Anhalt geben. Je kleiner die gemessene
Resource und je höher die Geschwindigkeit ist, um so mehr wird die Messung
durch die Antwortzeiten verfälscht. Sie passt praktisch nur zu Resourcen
gleicher Größe und ist selbst dann nur eine Momentaufnahme.
Selbst diese 50kB-Grafik würde ich einem Modemnutzer aber nur ungern
unnötigerweise aufzwingen.
Auf Wiederlesen
Detlef
Hi,
Ich bezog mich auf das Scriptbeispiel, das die komplette Seite misst, da
wäre es bestimmt nicht so toll, das cachen generell zu unterbinden.
Natürlich nicht - aber deswegen eben besser auch eine separate Datei nehmen. ;)
Dein Script misst auch sehr präzise ;),
Na, darauf, das so eine Messung nur ein grober Näherungswert *kann*, wurde ja schon hingewiesen - die Naturgesetze kann auch ich nicht aufheben. ;)
Es kann nur einen sehr groben Anhalt geben. Je kleiner die gemessene
Resource und je höher die Geschwindigkeit ist, um so mehr wird die Messung
durch die Antwortzeiten verfälscht.
Yep. Und in meinem Fall ist die Resource - schon wg. Rücksicht auf etwaige Modembenutzer - relativ klein (ein Modembenutzer würde sage: relativ groß ;->). Aber wenn es ein Indiz auf ene höhere Bandbreite gibt, dann kann man sich zur Nt ja auch mit einer größeren Resource "rantasten" (eraxhte ich aber nicht für notwendig - zumindest mir reicht der ermittelte Wert, so grob er auch ist, praktisch absolut aus).
Selbst diese 50kB-Grafik würde ich einem Modemnutzer aber nur ungern
unnötigerweise aufzwingen.
Yep (s.o.). Aber als einmaliger Kompromiß IMHO vertretbar. Man soll das ja auch nicht auf jeder Seite mitschleppen, sondern *nur dann*, wenn man den Wert noch nicht hat. Danach kann (und sollte!) man ihn ja sichern ...
Gruß, Cybaer
Hallo.
Gibt es eine Möglichkeit, von JS aus die Bandbreite der Internetanbindung abzufragen, ohne selbst eine Messung durchzuführen?
Nutze doch einfach ein Protokoll, dass dir diese Angaben im Gegensatz zu HTTP übermitteln kann, etwa RTSP.
MfG, at