刘洋 7 сар өмнө
parent
commit
8ae88f0f7c

+ 53 - 15
src/features/OnlineExam/CheckComputer.vue

@@ -32,30 +32,68 @@ let rtt = $ref(0);
 const network = $computed(() => {
   return {
     downlink,
-    downlinkStatus: downlink > 0.5,
+    downlinkStatus: downlink > 0.1,
     rrt: rtt,
     rrtStatus: rtt < 1000,
   };
 });
+
+function getSpeedWithAjax(url: string) {
+  return new Promise((resolve, reject) => {
+    let start = null;
+    let end = null;
+    start = new Date().getTime();
+    const xhr = new XMLHttpRequest();
+    xhr.onreadystatechange = function () {
+      if (xhr.readyState === 4) {
+        end = new Date().getTime();
+        const size = xhr.getResponseHeader("Content-Length") / 1024;
+        const speed = ((size * 1000) / (end - start)).toFixed(2);
+        resolve(speed);
+      }
+    };
+    xhr.open("GET", url);
+    xhr.send();
+  });
+}
+
 function getDelay() {
   let startTime = new Date().getTime();
-  let img = new Image();
-  img.src =
-    "https://oss-file.qmth.com.cn/sop-public/file/2024/11/12/esmkRvFbkOr_VNaaZBzW0.jpg";
-  img.onload = () => {
-    const endTime = new Date().getTime();
-    let fs = 237; //图片文件大小,字节
-    let l = 2; //小数点的位数
-    let alltime = (fs * 1000) / (endTime - startTime);
-    let Lnum = Math.pow(10, l);
-    let calcspeed = Math.round(alltime * Lnum) / Lnum;
-    downlink = Math.round((calcspeed / 128) * Lnum) / Lnum;
-
-    rtt = endTime - startTime;
-  };
+  // let img = new Image();
+  // img.src =
+  //   "https://oss-file.qmth.com.cn/sop-public/file/2024/11/12/esmkRvFbkOr_VNaaZBzW0.jpg";
+  // img.onload = () => {
+  //   const endTime = new Date().getTime();
+  //   let fs = 237; //图片文件大小,字节
+  //   let l = 2; //小数点的位数
+  //   let alltime = (fs * 1000) / (endTime - startTime);
+  //   let Lnum = Math.pow(10, l);
+  //   let calcspeed = Math.round(alltime * Lnum) / Lnum;
+  //   downlink = Math.round((calcspeed / 128) * Lnum) / Lnum;
+
+  //   rtt = endTime - startTime;
+  // };
+  httpApp
+    .get("/api/ecs_core/systemProperty/APP_DOWNLOAD_URL")
+    .then((res) => {
+      const endTime = new Date().getTime();
+      rtt = endTime - startTime;
+    })
+    .catch((err: any) => {
+      console.log(err);
+    });
 }
 
 getDelay();
+getSpeedWithAjax(
+  "https://oss-file.qmth.com.cn/sop-public/file/2024/11/12/esmkRvFbkOr_VNaaZBzW0.jpg"
+)
+  .then((res) => {
+    downlink = res;
+  })
+  .catch((err: any) => {
+    console.log(err);
+  });
 
 const time = $ref({
   currentTimeZone: moment().format("Z"),