【发布时间】:2022-01-16 12:04:13
【问题描述】:
我正在使用 Node.js 制作一个互联网速度测试应用程序。一切正常,期待下载测试。我通常以 8Mbits/s 的速度下载,但是当我尝试 XHR 在 /public/chunk/somefile.txt 请求文本文件/图像(约 256 MByte)时,它会在 1 秒内下载它,这是不可能的。然后我检查了onprogress日志:
为什么加载图片这么快?我的意思是它没有缓存或任何东西。无论如何,这是代码:
const fileUrl= "/public/chunk/d.jpg";
xhr = new XMLHttpRequest();
xhr.onprogress = (e) => console.log(e, e.loaded - e.total);
xhr.onloadend = () => { console.log("end")};
xhr.open("GET", fileUrl, true);
xhr.setRequestHeader('Cache-Control','no-cache');
xhr.send();
但是: 事情是这样的,如果我输入图片网址,例如:https://upload.wikimedia.org/wikipedia/commons/f/ff/Pizigani_1367_Chart_10MB.jpg。有用!为什么?
请告诉我为什么它不起作用,我已经尝试了 5 个小时。提前致谢。
【问题讨论】:
-
测试时服务器应用程序是否在同一台机器上运行?如果是这样,您将能够以与在本地驱动器上复制文件类似的速度下载文件。
-
是的。但我也在手机上试过了,结果还是一样。
-
如果手机在同一个网络,50MB什么都不是。千兆 LAN 连接传输速度高达 125MB/s。 866MBit 的无线连接传输速度高达 108MB/s。也许this answer 对你有帮助。
-
是的,但我最多下载。 1MB/秒。所以这是不可能的。此外,如果我输入维基百科网址,我会得到 0.9MB/s 的正常结果
-
没关系,如果您从 LAN(局域网)内加载文件,则传输速率不限于您所在地区的 ISP(Internet 服务提供商)提供的访问速率WAN(广域网)。
标签: javascript node.js download xmlhttprequest