Messung der Downloadgeschwindigkeit mit AJAX
von Dennis Wronka
am 09.04.07 um 11:15 (1038 Hits)
Mit AJAX kann man ja tolle Sachen machen, so hab ich einfach mal Interesse was rumgebastelt und einen kleinen Speedtest gestrickt.
Dieser laedt eine beliebige Datei vom Server, sie sollte nicht zu klein sein damit auch wirklich was gemessen werden kann aber auch nicht zu gross da man sonst einen Tee aufsetzen muss um die Wartezeit zu ueberbruecken.
Die Testdatei wird in url in der Funktion speedtest() als vollstaendiger URL angegeben, bei meinem Test hab ich mit den Quellarchiven von Groff gearbeitet.
Je nachdem ob ueber das Internet, das lokale Netz oder auf dem eigenen Rechner getestet wird sollte natuerlich die Dateigroesse auch entsprechend angepasst werden.
So, nun mal zum Code, der bestimmt hier und da noch etwas verbesserungswuerdig sein duerfte, aber um zu demonstrieren wie man einen kleinen Speedtest mit AJAX realisiert sollte er vollkommen ausreichen.
Code javascript:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 <html> <head> <script type="text/javascript"> if (window.XMLHttpRequest) { http=new XMLHttpRequest(); } else if (window.ActiveXObject) { http=new ActiveXObject("Microsoft.XMLHTTP") } var time1; var time2; function handlehttpreply() { if ((http.readyState==4) && (http.status==200)) { var filesize=http.responseText.length/1024; var now=new Date(); time2=now.getTime(); var time=(time2-time1)/1000; 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.onreadystatechange=handlehttpreply; http.open('GET',url,true); var now=new Date(); time1=now.getTime(); http.send(null); } else { alert('Speedtest cannot be started.'); } } </script> </head> <body onload="speedtest();"> <script src="http://www.google-analytics.com/urchin.js" type="text/javascript"> </script> <script type="text/javascript"> _uacct = "UA-450137-1"; urchinTracker(); </script> <center><span class="smallfont">Seite generiert in <b>0,19481</b> Sekunden mit <b>39</b> queries</span></center></body> </html>
Im Konqueror scheint dieses Script leider nicht zu funktionieren. In Firefox, Opera und Internet Explorer sollte es aber keine Probleme geben.






