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

标签 javascript jquery ajax

我想在我的服务器上有一个非常简单的页面,它使用 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/

相关文章:

javascript - 当我们将原语视为 JavaScript 中的对象时会发生什么?

javascript - 如何使用 jQuery 或 Prototype 获取字符串(而不是 DOM)中的 HTML 标签的内部 HTML 值?

jquery - 如何在 AJAX 调用上重新渲染 django 模板代码

PHP 和 Ajax 文件上传 - 无法使用 $_FILES 获取 tmp_name

javascript - 使用 Javascript 在浏览器中解析 PDF 表单数据

javascript - 如何向 React 提供 JSON?

javascript - iOS JS 类对象注入(inject) WebView

javascript - jquery 移动对话框在页面加载后关闭

javascript - 如何让用户在小数点前输入一定数量的输入值,在小数点后输入一定数量的输入值

javascript - 允许在 JQUERY 类中单击一次