【问题标题】:getting ping times from a client side application从客户端应用程序获取 ping 时间
【发布时间】:2017-08-07 23:32:09
【问题描述】:

我想在 Angular2 仪表板应用程序中包含一些 ping 时间。我无法做一些简单的事情,比如

this.http.get('https://www.google.com').subscribe((res) => {
  Logger.debug('my response:', res);
});

因为 CORS 问题。我没有一种简单的方法可以在服务器上构建一个可以提供这些的 api 端点,因为没有真正的“服务器”。该应用程序只是在localhost 上提供的文件。

我没有能力向主机添加代码(一个简单的 python 节点可以解决我所有的问题),所以我想知道是否有办法从客户端内的各种 IP 地址获取 ping 时间仅限侧面应用程序。

【问题讨论】:

  • 您可以使用远程图像,它们可能不会遇到相同的 CORS 问题,尽管计算整体时间可能有点棘手
  • @Condorcho 我在搜索时看到,这看起来正是我需要做的,只是我无法创建该服务器端点。我无法在服务器上创建任何东西

标签: javascript angular cors client


【解决方案1】:

您需要为此使用具有 CORS 标头的服务器。

或者,正如 Rob 的评论中提到的,您可以使用图像:

let t0 = performance.now()
let img = new Image()
img.onload = function() {
  alert(`${(performance.now() - t0).toFixed(2)} ms`)
}
img.src = 'https://upload.wikimedia.org/wikipedia/commons/c/ce/Transparent.gif'

这会从 Wikipedia 加载 1x1 GIF 图像。解析将产生可忽略的影响,但仍不会 100% 准确。但这是我能想到的唯一方法,无需 ping 任何服务器端组件。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-04-27
    • 2011-12-11
    • 1970-01-01
    • 1970-01-01
    • 2017-09-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多