JavaScript-测量远程页面的加载时间

时间:2018-12-25 10:50:44

标签: javascript jquery ajax cors

我想在服务器上拥有一个非常简单的页面,该页面使用JS来衡量在多个远程URL /服务器上加载登录网页所需的时间。这些服务器遍布世界各地,我想衡量时间以便为自己的位置选择最快的服务器(即代码当然会在用户的浏览器上在客户端运行)。

示例:

server1.example.com:200毫秒

server2.example.com:400毫秒

server3.example.com:2毫秒

有很多软件可以实现这个基本概念(从简单的ping到wget等),但是我正在寻找可以在简单页面中使用的JS代码,该页面将尝试这些请求并显示时间。

到目前为止,我尝试过的基本方法(使用jQuery的简单Ajax请求)由于CORS错误而无法使用。对于最简单的解决方案,任何想法都很棒。

1 个答案:

答案 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');

为了获得准确的结果,请确保图像大小相同。