3f06ab1381
Merge with #29. Using standard js code style (ugh...); rewritten documentation in markdown; Added example6
35 lines
1.3 KiB
HTML
35 lines
1.3 KiB
HTML
<!DOCTYPE html>
|
|
<html>
|
|
<head>
|
|
<title>Speedtest</title>
|
|
</head>
|
|
|
|
<body>
|
|
<h1>Speedtest</h1>
|
|
|
|
<h4>IP Address</h4>
|
|
<p id="ip"></p>
|
|
|
|
<h4>Download</h4>
|
|
<p id="download"></p>
|
|
|
|
<h4>Upload</h4>
|
|
<p id="upload"></p>
|
|
|
|
<h4>Latency</h4>
|
|
<p id="ping"></p>
|
|
|
|
<script type="text/javascript">
|
|
var w = new Worker('speedtest_worker.min.js') // create new worker
|
|
setInterval(function () { w.postMessage('status') }, 100) // ask for status every 100ms
|
|
w.onmessage = function (event) { // when status is received, split the string and put the values in the appropriate fields
|
|
var data = event.data.split(';') // string format: status;download;upload;ping (speeds are in mbit/s) (status: 0=not started, 1=downloading, 2=uploading, 3=ping, 4=done, 5=aborted)
|
|
document.getElementById('download').textContent = data[1] + ' Mbit/s'
|
|
document.getElementById('upload').textContent = data[2] + ' Mbit/s'
|
|
document.getElementById('ping').textContent = data[3] + ' ms, ' + data[5] + ' ms jitter'
|
|
document.getElementById('ip').textContent = data[4]
|
|
}
|
|
w.postMessage('start') // start the speedtest (default params. keep garbage.php and empty.dat in the same directory as the js file)
|
|
</script>
|
|
</body>
|
|
</html>
|