use async and await

This commit is contained in:
root
2020-12-09 18:55:48 +02:00
parent e028617c4e
commit 1481e13888
3 changed files with 682 additions and 687 deletions

1322
LICENSE

File diff suppressed because it is too large Load Diff

View File

@@ -1,4 +1,4 @@
# SpeedTest-php # SpeedTest-php
a speedtest php site a speedtest php site
## [Website](https://speedtest.yehudae.net) ## [Website](https://speedtest.yehudae.net)

View File

@@ -2,7 +2,7 @@ let serverEUrl = "http://localhost/speedtest/e.php";
let serverGUrl = "http://localhost/speedtest/g.php"; let serverGUrl = "http://localhost/speedtest/g.php";
let status = ""; let status = "";
function startTest(){ async function startTest(){
if(status == "" || status == "stop"){ if(status == "" || status == "stop"){
status = "start"; status = "start";
setText("button", "Stop Test"); setText("button", "Stop Test");
@@ -14,22 +14,17 @@ function startTest(){
} }
setText("status", "checking ping..."); setText("status", "checking ping...");
ping((ms) => { await ping((ms) => {setText("ping", ms)});
setText("ping", ms); if(status == "stoped"){stopTest();return;}
if(status == "stoped"){stopTest();return;} setText("status", "checking download...");
setText("status", "checking download..."); await download((mb) => {setText("down", mb)});
download((mb) => { if(status == "stoped"){stopTest();return;}
setText("down", mb); setText("status", "checking upload...");
if(status == "stoped"){stopTest();return;} await upload((mb) => {setText("up", mb)});
setText("status", "checking upload..."); if(status == "stoped"){stopTest();return;}
upload((mb) => { status = "stop";
setText("up", mb); setText("status", "done.");
if(status == "stoped"){stopTest();return;} setText("button", "Start Test");
setText("status", "done.");
setText("button", "Start Test");
});
});
});
} }
function stopTest(){ function stopTest(){
@@ -41,7 +36,7 @@ function setText(elm, text){
document.getElementById(elm).innerText = text; document.getElementById(elm).innerText = text;
} }
function ping(callback) { async function ping(callback) {
var startTime = 0; var startTime = 0;
var request = new XMLHttpRequest(); var request = new XMLHttpRequest();
request.open("HEAD", serverEUrl + "?_=" + Math.random(), true); request.open("HEAD", serverEUrl + "?_=" + Math.random(), true);
@@ -59,7 +54,7 @@ function ping(callback) {
} }
} }
function download(callback){ async function download(callback){
var startTime = 0; var startTime = 0;
var request = new XMLHttpRequest(); var request = new XMLHttpRequest();
request.open("GET", serverGUrl, true); request.open("GET", serverGUrl, true);
@@ -80,16 +75,16 @@ function download(callback){
} }
} }
function junkData(length){ async function junkData(length){
var chars = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ~!@#$%^&*()`[]\\{}|:"<>?,./;\'', result = ''; var chars = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ~!@#$%^&*()`[]\\{}|:"<>?,./;\'', result = '';
for (var i = 0; i < length; i++) result += chars[Math.floor(Math.random() * chars.length)]; for (var i = 0; i < length; i++) result += chars[Math.floor(Math.random() * chars.length)];
return result; return result;
} }
function upload(callback){ async function upload(callback){
var startTime = 0; var startTime = 0;
var junkLength = 2500000; var junkLength = 2500000;
var junk = junkData(junkLength); //=2.5 Mb var junk = await junkData(junkLength); //=2.5 Mb
var request = new XMLHttpRequest(); var request = new XMLHttpRequest();
request.open("POST", serverEUrl + "?_=" + Math.random(), true); request.open("POST", serverEUrl + "?_=" + Math.random(), true);
request.setRequestHeader("Content-Type", "application/octet-stream"); request.setRequestHeader("Content-Type", "application/octet-stream");