Dennis Wronka
Soulcollector
Ich bin ja sonst nicht so der JavaScript-Wizard und wollte deshalb einfach mal ein paar Meinungen zu dem kleinen Speedtester hoeren den ich grad mal so zusammengeschustert hab.
Wuerdet Ihr noch etwas anders machen oder findet Ihr das Script in der Form nutzbar?
Nachtrag: Ich hab das Script grad mal ein wenig ueberarbeitet da 2 Probleme festgestellt habe: http.responseText.length ist kleiner als die wirkliche Dateigroesse, der Content-Length-Header entspricht dem richtigen Wert, und im IE kann ich darauf nichtmal zugreifen.
Der Code oben ist nun also der aktuell genutzte (naja, genutzt wird der Code nicht wirklich, das war nur mal so eine Ueberlegung und ich hab das dann einfach mal umgesetzt).
Nachtrag 2: Der Code ist jetzt uebrigens in folgenden Browsern erfolgreich getestet worden:
Wuerdet Ihr noch etwas anders machen oder findet Ihr das Script in der Form nutzbar?
Javascript:
<html>
<head>
<script type="text/javascript">
if (window.XMLHttpRequest)
{
http=new XMLHttpRequest();
}
else if (window.ActiveXObject)
{
http=new ActiveXObject("Microsoft.XMLHTTP")
}
var starttime;
function handlehttpreply()
{
if ((http.readyState==4) && (http.status==200))
{
var now=new Date();
var time=(now.getTime()-starttime)/1000;
var filesize=http.getResponseHeader("Content-Length")/1024;
var speed=filesize/time;
document.open();
document.write(speed.toFixed(1)+" KB/s");
document.close();
}
}
function speedtest()
{
if (http)
{
url='http://localhost/groff.tar.bz2';
http.open('GET',url,false);
var now=new Date();
starttime=now.getTime();
http.send(null);
handlehttpreply();
}
else
{
alert('Speedtest cannot be started.');
}
}
</script>
</head>
<body onload="speedtest();">
Testing download speed...
</body>
</html>
Nachtrag: Ich hab das Script grad mal ein wenig ueberarbeitet da 2 Probleme festgestellt habe: http.responseText.length ist kleiner als die wirkliche Dateigroesse, der Content-Length-Header entspricht dem richtigen Wert, und im IE kann ich darauf nichtmal zugreifen.
Der Code oben ist nun also der aktuell genutzte (naja, genutzt wird der Code nicht wirklich, das war nur mal so eine Ueberlegung und ich hab das dann einfach mal umgesetzt).
Nachtrag 2: Der Code ist jetzt uebrigens in folgenden Browsern erfolgreich getestet worden:
- Konqueror (dort funktioniert die Ausgabe zwar nicht, aber mit alert() sieht man den Wert)
- Firefox 1
- Firefox 2
- Mozilla
- Seamonkey
- IE 5.5
- IE 6
- IE 7
- Opera 9 (aber scheinbar nicht in 9.10)