From fce6a67be0b61dbbac1c448b329fdf54175ed721 Mon Sep 17 00:00:00 2001 From: dosse91 Date: Thu, 2 Mar 2017 17:58:40 +0100 Subject: [PATCH] Implemented multistream; Implemented jitter test; Implemented Fetch API (default disabled); Added more settings; Improved code quality; Improved accuracy; Added browser-specific optimizations; Added minified version; Expanded documentation; Some bug fixes --- .gitignore | 2 + README.md | 9 +- doc.pdf | Bin 0 -> 57119 bytes example1.html | 4 +- example2.html | 14 +- example3.html | 27 ++- example4.html | 27 ++- garbage.php | 2 +- speedtest_worker.js | 378 +++++++++++++++++++++++++++++----------- speedtest_worker.min.js | 1 + 10 files changed, 343 insertions(+), 121 deletions(-) create mode 100644 .gitignore create mode 100644 doc.pdf create mode 100644 speedtest_worker.min.js diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..5f72c58 --- /dev/null +++ b/.gitignore @@ -0,0 +1,2 @@ +doc.odt +cktest.html diff --git a/README.md b/README.md index 5888cd1..be0f1c4 100644 --- a/README.md +++ b/README.md @@ -11,14 +11,13 @@ This is a very lightweight Speedtest implemented in Javascript, using XMLHttpReq Only modern browsers are supported (Edge 12+) ## Requirements - - A reasonably fast web server - - Some way to generate garbage data using either the included PHP script, a [big file of random data](http://downloads.fdossena.com/geth.php?r=speedtest-bigfile), or a symlink to /dev/urandom - - Your server must accept large POST requests (up to 10 Megabytes), otherwise the upload test will fail - - Client side, there must not be any type of buffering (such as a proxy), or you may get incorrect results + - A reasonably fast web server. PHP is optional but recommended (see doc.pdf for details) + - Some way to generate garbage data (PHP script included, see doc.pdf for other solutions) + - Your server must accept large POST requests (up to 20 Megabytes), otherwise the upload test will fail - It's also better if your server does not use compression, but it's not mandatory ## How to use -See the examples, it's really simple. +See the examples or doc.pdf ## License Copyright (C) 2016-2017 Federico Dossena diff --git a/doc.pdf b/doc.pdf new file mode 100644 index 0000000000000000000000000000000000000000..b04c2da160dab04d713e6bc6fe7334fcd9a46ccb GIT binary patch literal 57119 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 O+(1M)ow$Mo=KljyN&kxg literal 0 HcmV?d00001 diff --git a/example1.html b/example1.html index dc4d612..3b88d76 100644 --- a/example1.html +++ b/example1.html @@ -14,13 +14,13 @@

Latency