首页 > 解决方案 > JavaScript - 测量远程页面的加载时间

问题描述

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

例子:

server1.example.com:200 毫秒

server2.example.com:400 毫秒

server3.example.com:2 毫秒

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

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

标签: javascriptjqueryajax

解决方案


您可以不受任何限制地加载图像,因此请充分利用它们:

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

顺便说一句,为了获得准确的结果,请确保图像大小相同。


推荐阅读