From 30c595de6eb1dbf4812bbadbdcb4b6d385ffc0bf Mon Sep 17 00:00:00 2001 From: dosse91 Date: Wed, 26 Apr 2017 07:23:36 +0200 Subject: [PATCH] Added experimental workarounds for IE11; Added new example --- README.md | 2 +- doc.pdf | Bin 56589 -> 56448 bytes speedtest_worker.js | 77 +++++++++++++++++++++++++++------------- speedtest_worker.min.js | 2 +- 4 files changed, 55 insertions(+), 26 deletions(-) diff --git a/README.md b/README.md index be0f1c4..88b93b4 100644 --- a/README.md +++ b/README.md @@ -8,7 +8,7 @@ This is a very lightweight Speedtest implemented in Javascript, using XMLHttpReq [Take a Speedtest](http://speedtest.fdossena.com) ## Compatibility -Only modern browsers are supported (Edge 12+) +Only modern browsers are supported (IE11, latest Edge, latest Chrome, latest Firefox, latest Safari) ## Requirements - A reasonably fast web server. PHP is optional but recommended (see doc.pdf for details) diff --git a/doc.pdf b/doc.pdf index 13cb8d9efd50707917a9189bd06f2773fa8ce142..33f74e864b784828741203a4e1dd7a018c5ed05f 100644 GIT binary patch delta 37528 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 VJ~!Ko91w^{zB#0%)K6(}{0AecZXy5x delta 37792 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 diff --git a/speedtest_worker.js b/speedtest_worker.js index 9d2e92b..48c4284 100644 --- a/speedtest_worker.js +++ b/speedtest_worker.js @@ -211,12 +211,16 @@ function dlTest(done){ }.bind(this),200); } //upload test, calls done function whent it's over -//garbage data for upload test (1mb of random bytes repeated 20 times, for a total of 20mb) +//garbage data for upload test var r=new ArrayBuffer(1048576); try{r=new Float32Array(r);for(var i=0;iloadDiff||(totLoaded+=loadDiff,prevLoaded=event.loaded)}.bind(this),xhr[i].upload.onload=function(){testStream(i,0)}.bind(this),xhr[i].upload.onerror=function(){failed=!0;try{xhr[i].abort()}catch(e){}delete xhr[i]}.bind(this),xhr[i].open("POST",settings.url_ul+"?r="+Math.random(),!0),xhr[i].setRequestHeader("Content-Encoding","identity"),xhr[i].send(req)}}.bind(this),1)}.bind(this),i=0;it)){var speed=totLoaded/(t/1e3);ulStatus=(8*speed/925e3).toFixed(2),(t/1e3>settings.time_ul||failed)&&((failed||isNaN(ulStatus))&&(ulStatus="Fail"),clearRequests(),clearInterval(interval),done())}}.bind(this),200)}}function pingTest(done){if(!ptCalled){ptCalled=!0;var prevT=null,ping=0,jitter=0,i=0,prevInstspd=0;xhr=[];var doPing=function(){prevT=(new Date).getTime(),xhr[0]=new XMLHttpRequest,xhr[0].onload=function(){if(0==i)prevT=(new Date).getTime();else{var instspd=((new Date).getTime()-prevT)/2,instjitter=Math.abs(instspd-prevInstspd);1==i?ping=instspd:(ping=.9*ping+.1*instspd,jitter=instjitter>jitter?.2*jitter+.8*instjitter:.9*jitter+.1*instjitter),prevInstspd=instspd}pingStatus=ping.toFixed(2),jitterStatus=jitter.toFixed(2),i++,ii;i++)req.push(r);req=new Blob(req);var ulCalled=!1,ptCalled=!1; +function clearRequests(){if(xhr){for(var i=0;iloadDiff||(totLoaded+=loadDiff,prevLoaded=event.loaded)}.bind(this),xhr[i].onload=function(){try{xhr[i].abort()}catch(e){}testStream(i,0)}.bind(this),xhr[i].onerror=function(){failed=!0;try{xhr[i].abort()}catch(e){}delete xhr[i]}.bind(this);try{settings.xhr_dlUseBlob?xhr[i].responseType="blob":xhr[i].responseType="arraybuffer"}catch(e){}xhr[i].open("GET",settings.url_dl+"?r="+Math.random()+"&ckSize="+settings.garbagePhp_chunkSize,!0),xhr[i].send()}}.bind(this),1+delay)}.bind(this),i=0;it)){var speed=totLoaded/(t/1e3);dlStatus=(8*speed/925e3).toFixed(2),(t/1e3>settings.time_dl||failed)&&((failed||isNaN(dlStatus))&&(dlStatus="Fail"),clearRequests(),clearInterval(interval),done())}}.bind(this),200)}}function ulTest(done){if(!ulCalled){ulCalled=!0;var totLoaded=0,startT=(new Date).getTime(),failed=!1;xhr=[];for(var testStream=function(i,delay){setTimeout(function(){if(3==testStatus){var prevLoaded=0,x=new XMLHttpRequest;xhr[i]=x;var ie11workaround;try{xhr[i].upload.onprogress,ie11workaround=!1}catch(e){ie11workaround=!0}ie11workaround?(xhr[i].onload=function(){totLoaded+=262144,testStream(i,0)},xhr[i].onerror=function(){failed=!0;try{xhr[i].abort()}catch(e){}delete xhr[i]},xhr[i].open("POST",settings.url_ul+"?r="+Math.random(),!0),xhr[i].setRequestHeader("Content-Encoding","identity"),xhr[i].send(reqsmall)):(xhr[i].upload.onprogress=function(event){if(3!=testStatus)try{x.abort()}catch(e){}var loadDiff=event.loaded<=0?0:event.loaded-prevLoaded;isNaN(loadDiff)||!isFinite(loadDiff)||0>loadDiff||(totLoaded+=loadDiff,prevLoaded=event.loaded)}.bind(this),xhr[i].upload.onload=function(){testStream(i,0)}.bind(this),xhr[i].upload.onerror=function(){failed=!0;try{xhr[i].abort()}catch(e){}delete xhr[i]}.bind(this),xhr[i].open("POST",settings.url_ul+"?r="+Math.random(),!0),xhr[i].setRequestHeader("Content-Encoding","identity"),xhr[i].send(req))}}.bind(this),1)}.bind(this),i=0;it)){var speed=totLoaded/(t/1e3);ulStatus=(8*speed/925e3).toFixed(2),(t/1e3>settings.time_ul||failed)&&((failed||isNaN(ulStatus))&&(ulStatus="Fail"),clearRequests(),clearInterval(interval),done())}}.bind(this),200)}}function pingTest(done){if(!ptCalled){ptCalled=!0;var prevT=null,ping=0,jitter=0,i=0,prevInstspd=0;xhr=[];var doPing=function(){prevT=(new Date).getTime(),xhr[0]=new XMLHttpRequest,xhr[0].onload=function(){if(0==i)prevT=(new Date).getTime();else{var instspd=((new Date).getTime()-prevT)/2,instjitter=Math.abs(instspd-prevInstspd);1==i?ping=instspd:(ping=.9*ping+.1*instspd,jitter=instjitter>jitter?.2*jitter+.8*instjitter:.9*jitter+.1*instjitter),prevInstspd=instspd}pingStatus=ping.toFixed(2),jitterStatus=jitter.toFixed(2),i++,ii;i++)req.push(r);req=new Blob(req),r=new ArrayBuffer(262144);try{r=new Float32Array(r);for(var i=0;i