我想在服务器上拥有一个非常简单的页面,该页面使用JS来衡量在多个远程URL /服务器上加载登录网页所需的时间。这些服务器遍布世界各地,我想衡量时间以便为自己的位置选择最快的服务器(即代码当然会在用户的浏览器上在客户端运行)。
示例:
server1.example.com:200毫秒
server2.example.com:400毫秒
server3.example.com:2毫秒
有很多软件可以实现这个基本概念(从简单的ping到wget等),但是我正在寻找可以在简单页面中使用的JS代码,该页面将尝试这些请求并显示时间。
到目前为止,我尝试过的基本方法(使用jQuery的简单Ajax请求)由于CORS错误而无法使用。对于最简单的解决方案,任何想法都很棒。
答案 0 :(得分:2)
您可以不受任何限制地加载图像,因此请充分利用它们:
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');
为了获得准确的结果,请确保图像大小相同。