Update service.js

This commit is contained in:
Yehuda Eisenberg
2021-09-09 23:36:00 +03:00
committed by GitHub
parent 0323484345
commit 21c4439b41

View File

@@ -8,6 +8,10 @@ async function startTest(){
if(status == "" || status == "stop"){ if(status == "" || status == "stop"){
status = "start"; status = "start";
setText("button", "Stop Test"); setText("button", "Stop Test");
setText("ping", "");
setText("down", "");
setText("up", "");
setText("status", "");
} }
else if(status == "start"){ else if(status == "start"){
status = "stop"; status = "stop";
@@ -28,8 +32,8 @@ async function startTest(){
if(status == "stop"){stopTest();return;} if(status == "stop"){stopTest();return;}
setText("status", "checking upload..."); setText("status", "checking upload...");
var downMB = await upload(); var upMB = await upload();
setText("up", downMB); setText("up", upMB);
status = ""; status = "";
setText("status", "done."); setText("status", "done.");
@@ -48,7 +52,8 @@ function setText(elm, text){
async function ping() { async function ping() {
return new Promise(resolve => { return new Promise(resolve => {
var startTime, request = new XMLHttpRequest(); var startTime = 0;
var request = new XMLHttpRequest();
request.open("HEAD", serverEUrl + "?_=" + Math.random(), true); request.open("HEAD", serverEUrl + "?_=" + Math.random(), true);
request.onreadystatechange = function() { request.onreadystatechange = function() {
if (request.readyState === 4) { if (request.readyState === 4) {
@@ -67,23 +72,27 @@ async function ping() {
async function download(){ async function download(){
return new Promise(resolve => { return new Promise(resolve => {
var startTime, request = new XMLHttpRequest(); var startTime = 0;
var request = new XMLHttpRequest();
request.open("GET", serverGUrl + "?_=" + Math.random(), true); request.open("GET", serverGUrl + "?_=" + Math.random(), true);
request.onreadystatechange = function() { request.onreadystatechange = function() {
if (request.readyState === 4 && request.status === 200) { if (request.readyState === 4 && request.status === 200) {
var endTime = new Date().getTime(); var endTime = new Date().getTime();
var reqLength = request.response.length * 8; var reqLength = request.responseText.length * 8;
var sumTime = (endTime - startTime) / 1000; var sumTime = (endTime - startTime) / 1000;
var speed = (((reqLength / sumTime) / 1024 /* Kbps */) / 1024 /* Mbps */).toFixed(2); var speed = (((reqLength / sumTime) / 1024 /* Kbps */) / 1024 /* Mbps */).toFixed(2);
resolve(speed + " Mbps (" + sumTime + " s)"); resolve(speed + " Mbps (" + sumTime + " s)");
} }
}; };
request.onprogress = function(){ request.onprogress = function() {
var reqLength = request.response.length * 8; if(status == "stop"){request.abort();resolve("Stopped.");}
var sumTime = (new Date().getTime() - startTime) / 1000;
var endTime = new Date().getTime();
var reqLength = request.responseText.length * 8;
var sumTime = (endTime - startTime) / 1000;
var speed = (((reqLength / sumTime) / 1024 /* Kbps */) / 1024 /* Mbps */).toFixed(2); var speed = (((reqLength / sumTime) / 1024 /* Kbps */) / 1024 /* Mbps */).toFixed(2);
setText("down", speed + " Mbps (" + sumTime + " s)"); setText("down", speed + " Mbps (" + sumTime + " s)");
} };
try { try {
startTime = new Date().getTime(); startTime = new Date().getTime();
request.send(null); request.send(null);
@@ -101,8 +110,9 @@ function junkData(length){
async function upload(){ async function upload(){
return new Promise(resolve => { return new Promise(resolve => {
var startTime, junkLength = 2500000; //=2.5 Mb var startTime = 0;
var junk = junkData(junkLength); var junkLength = 5000000; //=~5 Mb
var junk = JSON.stringify({data: junkData(junkLength)});
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");
@@ -114,11 +124,6 @@ async function upload(){
resolve(speed + " Mbps (" + sumTime + " s)"); resolve(speed + " Mbps (" + sumTime + " s)");
} }
}; };
request.onprogress = function(){
var sumTime = (new Date().getTime() - startTime) / 1000;
var speed = ((((junkLength * 8 /* byte (not bit) */) / sumTime) / 1024 /* Kbps */) / 1024 /* Mbps */).toFixed(2);
setText("up", speed + " Mbps (" + sumTime + " s)");
}
try { try {
startTime = new Date().getTime(); startTime = new Date().getTime();
request.send(junk); request.send(junk);