我想在我的服务器上有一个非常简单的页面,它使用 JS 来测量在几个远程 URL/服务器上加载登录网页所需的时间。这些服务器位于世界各地,我想测量时间以便为我的位置选择最快的服务器(即代码将在客户端运行,当然是在用户的浏览器上)。
示例:
server1.example.com:200 毫秒
server2.example.com:400 毫秒
server3.example.com:2 毫秒
有很多软件可以实现这个一般想法(从简单的 ping 到 wget 等),但我正在寻找可以在一个简单的页面中使用的 JS 代码,该页面将尝试这些请求并显示时间。
由于 CORS 错误,到目前为止我尝试过的基本方法(使用 jQuery 的简单 Ajax 请求)不起作用。任何关于最简单解决方案的想法都会很棒。
最佳答案
您可以不受任何限制地加载图像,因此请充分利用它们:
function ping(url) {
var img = new Image(),
start = Date.now();
img.onload = function () {
console.log(url, 'loaded in', Date.now() - start, 'ms');
};
img.src = url + '?' + Math.random();
document.body.appendChild(img);
}
ping('https://facebook.com/favicon.ico');
ping('https://www.bing.com/favicon.ico');
ping('https://youtube.com/favicon.ico');
顺便说一下,为了获得准确的结果,请确保图像大小相同。
关于JavaScript - 测量远程页面的加载时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53921644/