aboutsummaryrefslogtreecommitdiffstats
path: root/src/assets/javascripts
diff options
context:
space:
mode:
authorManeraKai <manerakai@protonmail.com>2023-02-08 01:41:32 +0300
committerManeraKai <manerakai@protonmail.com>2023-02-08 01:41:38 +0300
commit4983a7ad9f53f10a1b938b83b36bb0594ba4f295 (patch)
treeb855d320c37acf9a587f159be7d51ec8b8eedd4c /src/assets/javascripts
parent2.5.3 => 2.5.2 (diff)
downloadlibredirect-4983a7ad9f53f10a1b938b83b36bb0594ba4f295.zip
Re-added Test Latency in a better implementation https://github.com/libredirect/libredirect/issues/605
Diffstat (limited to 'src/assets/javascripts')
-rw-r--r--src/assets/javascripts/utils.js44
1 files changed, 43 insertions, 1 deletions
diff --git a/src/assets/javascripts/utils.js b/src/assets/javascripts/utils.js
index c8a771d9..2b9a9193 100644
--- a/src/assets/javascripts/utils.js
+++ b/src/assets/javascripts/utils.js
@@ -58,7 +58,48 @@ function getList() {
}
http.send(null)
})
+}
+
+function pingOnce(href) {
+ return new Promise(async resolve => {
+ let started
+ let http = new XMLHttpRequest()
+ http.timeout = 5000
+ http.ontimeout = () => resolve(5000)
+ http.onerror = () => resolve()
+ http.onreadystatechange = () => {
+ if (http.readyState == 2) {
+ if (http.status == 200) {
+ let ended = new Date().getTime()
+ http.abort()
+ resolve(ended - started)
+ } else {
+ resolve(5000 + http.status)
+ }
+ }
+ }
+ http.open("GET", `${href}?_=${new Date().getTime()}`, true)
+ started = new Date().getTime()
+ http.send(null)
+ })
+}
+function ping(href) {
+ return new Promise(async resolve => {
+ let average = 0
+ let time
+ for (let i = 0; i < 3; i++) {
+ time = await pingOnce(href)
+ if (i == 0) continue
+ if (time >= 5000) {
+ resolve(time)
+ return
+ }
+ average += time
+ }
+ average = parseInt(average / 3)
+ resolve(average)
+ })
}
export default {
@@ -68,5 +109,6 @@ export default {
getBlacklist,
camelCase,
getConfig,
- getOptions
+ getOptions,
+ ping,
}