0

我正在尝试将 java 脚本片段注入网页。在 java 脚本中,我尝试测量为此网页下载的数据总量,然后将数据大小除以页面加载时间来计算带宽。

有谁知道如何测量在 java 脚本的完整事件中下载了多少数据?

测量带宽的最建议方法是特意下载一个文件来测量我不想使用的文件。

非常感谢

4

2 回答 2

1

获得带宽(上传和下载)的最建议方法是下载/上传一个已知大小的文件,取开始时间和结束时间的差,然后将大小除以下载/上传它所花费的时间.

最推荐的方法也是最简单的方法,因为:

  1. 你知道文件的大小
  2. 您可以获得下载所需的时间
  3. 你可以控制它开始和结束的时间

通常你可以。但是使用当前页面上加载的资源来衡量速度的问题是您需要挂钩到每个资源,其中包括(但不限于):

  • 图片
  • 脚本
  • 样式表
  • 框架
  • XHR (AJAX)
  • 插座
  • 页面本身
  • 和其他我错过的东西。

页面以顺序和并行请求的组合加载资源,这些请求在不同的时间点开始和结束。有些甚至可能使用加载器脚本延迟加载,在您尝试检查时,可能还没有响应。

此外,如果您使用此脚本,则此脚本必须在所有内容之前加载,以连接到页面上的所有内容。这里的另一个问题是并非所有资源都有可靠的onload事件,尤其是link元素。

我建议你坚持简单的方法。

于 2013-04-17T22:30:05.763 回答
0

您可以查看Navigation Timing API以获取页面加载时间并计算页面中的字符以给出以字节为单位的大小,这当然不会为您提供真正使用的带宽,因为它不包括开销tcp 流量标头。当然,您必须考虑其他对象的大小,例如图像等。只是我脑海中的一些想法。

之前在 stackexchange 上提出了类似的问题:

如何仅使用 javascript 获取以 KB 为单位的当前页面大小?

于 2013-04-17T22:36:15.750 回答