JavaScriptsMathematik

Downloadzeit-Rechner

Berechnet, wie lange der Download einer Datei dauert — für 15 Anschlussarten vom 9,6-kbit-Modem bis zum 100-Mbit-Kabelanschluss.

Mit diesem Script könnt ihr berechnen, wie lange der Download einer Datei aus dem Internet dauert — und zwar für 15 verschiedene Anschlussarten auf einen Blick: vom 9,6-kbit-Modem über ISDN und die klassischen DSL-Stufen bis zum 100-Mbit-Kabelanschluss.

Die Bedienung ist einfach: Tragt die Dateigröße in das Feld ein, wählt daneben die Einheit (KB, MB oder GB) und klickt auf „Berechnen". Die Tabelle füllt sich dann für jede Anbindung mit der voraussichtlichen Dauer in Stunden, Minuten und Sekunden. Als Beispiel sind 700 MB vorausgefüllt — das entspricht genau einer CD-ROM.

Gut zu wissen: Internetanbieter geben die Geschwindigkeit in Bit pro Sekunde an, Dateigrößen werden aber in Byte gemessen — und 1 Byte sind 8 Bit. Ein „DSL 16000"-Anschluss mit 16.000 kbit/s schafft deshalb rund 2.000 KB pro Sekunde. Die Werte in der Tabelle sind Nominalwerte; durch Protokoll-Overhead und langsame Gegenstellen dauert ein Download in der Praxis meist etwas länger. Welche Geschwindigkeit euer Tarif hergibt, verrät euch euer Internetprovider.

Die Tabelle wurde seinerzeit auf Wunsch einiger User um die Breitbandzugänge erweitert — die Modem- und ISDN-Zeilen zeigen heute vor allem eindrucksvoll, wie lange man früher auf dieselbe Datei warten musste. Und wenn ihr zwischendurch Kilobyte in Megabyte umrechnen wollt, hilft euch unser KB MB Umrechner.

Mathematik Baujahr 2004 läuft in deinem Browser
Deine InternetanbindungStundenMinutenSekunden

So funktioniert das Script

Das Script besteht aus drei Teilen: einer Datenliste mit den Anschlussarten und ihren Geschwindigkeiten, einem Stück Code, das daraus beim Laden die Tabelle aufbaut, und der Rechenfunktion, die beim Klick auf „Berechnen" alle Zeilen füllt. Alles steckt in einer sofort ausgeführten Funktion, damit keine Variablennamen mit anderen Scripts auf der Seite kollidieren.

const anschluesse = [
  ["9.6 Kb", 1.1719],
  ["ISDN (64 Kb)", 7.8125],
  ["DSL 16000", 2000],
  // … insgesamt 15 Einträge
];

Jeder Eintrag dieses Arrays (einer Liste) besteht aus zwei Werten: dem Namen der Anbindung und ihrer Geschwindigkeit in Kilobyte pro Sekunde. Ein 56-kbit-Modem überträgt zum Beispiel rund 6,84 KB/s. Weil die Daten so sauber von der Logik getrennt sind, genügt es, hier eine Zeile zu ergänzen oder zu ändern, um die Tabelle anzupassen.

anschluesse.forEach(function (anschluss) {
  const tr = document.createElement("tr");
  const name = document.createElement("td");
  name.textContent = anschluss[0];
  tr.appendChild(name);
  for (let i = 0; i < 3; i++) {
    tr.appendChild(document.createElement("td"));
  }
  zeilen.appendChild(tr);
});

forEach ruft eine Funktion für jeden Listeneintrag auf. Mit document.createElement entsteht für jede Anbindung eine Tabellenzeile (<tr>): eine Zelle mit dem Namen und drei zunächst leere Zellen für Stunden, Minuten und Sekunden. appendChild hängt die fertige Zeile an den Tabellenkörper an — das HTML muss die 15 Zeilen also nicht selbst enthalten.

const eingabe = Number(document.getElementById("dl-groesse").value.replace(",", "."));
const mult = Number(document.getElementById("dl-einheit").value);
const kilobyte = eingabe * mult;

Beim Klick wird zuerst die Dateigröße gelesen; replace(",", ".") erlaubt dabei auch ein deutsches Dezimalkomma. Die Auswahlliste liefert als Wert direkt den Umrechnungsfaktor: 1 für KB, 1024 für MB und 1.048.576 (also 1024 × 1024) für GB. Nach der Multiplikation liegt die Größe einheitlich in Kilobyte vor und passt damit zu den KB/s-Werten der Liste.

const sekundenGesamt = kilobyte / anschluss[1];
zellen[1].textContent = Math.floor(sekundenGesamt / 3600);
zellen[2].textContent = Math.floor((sekundenGesamt % 3600) / 60);
zellen[3].textContent = Math.floor(sekundenGesamt % 60);

Dateigröße geteilt durch Geschwindigkeit ergibt die Gesamtdauer in Sekunden. Der Rest ist Umrechnen: Math.floor rundet ab, und der Modulo-Operator % liefert den Rest einer Division — sekundenGesamt % 3600 ist also das, was nach Abzug der vollen Stunden übrig bleibt. Daraus werden Minuten und Sekunden bestimmt, mit genau derselben Formel wie im Original von 2004.

Zum Anpassen: Neue Anschlussarten ergänzt ihr einfach in der Liste, z. B. ["Glasfaser (500 Mbit)", 62500] — die Geschwindigkeit in kbit/s geteilt durch 8 ergibt den KB/s-Wert. Die Tabelle baut sich beim Laden automatisch entsprechend auf.

Script für die eigene Homepage

Kopiert euch den kompletten Code und fügt ihn an der Stelle eurer Seite ein, an der das Script erscheinen soll. Er läuft ohne weitere Dateien und ohne fremde Server.

Mehr aus der Kategorie Mathematik