2

我有一个客户,其所需的 Web UI 图形密集;我们想收集有关连接到该站点的平均带宽的统计数据。有没有简单的方法可以做到这一点?“可能工作的最简单的事情”似乎是一个 Flash 或 Silverlight 组件,它对下载某个大小(比如 200K)的文件进行计时,然后将结果发布到保存数据的 URI。那会奏效吗?我应该自己写还是有一个简单的插入元素可以从某个地方下载?

4

6 回答 6

0

我会看看谷歌分析。这是您在页面中包含的一个简单的 javascript,它使用 Google 的海量分析数据库来跟踪谁通过何种连接访问您的网站,所有这些都在他们维护的数据库中。

您当然可以编写 Flash 或 Silverlight(或 javascript)组件来在后台下载文件、计时并报告,但您可能会因为填满他们的管道而激怒用户。

于 2008-10-28T00:38:46.627 回答
0

没有太多工具可以做到这一点。

您可以尝试 BrowserHawk ( http://www.cyscape.com/products/bhawk/features.aspx )。请参阅http://www.cyscape.com/showbrow.aspx?bhcp=1并向下滚动到连接详细信息。

可能最有效的方法是让访问者决定。您可以有一个带有两个大按钮的登录页面,上面写着“快速连接”和“慢速连接”,然后让他们单击一个。

请记住,如果您这样做,您将在该页面失去一定数量的访问者,因为他们太懒或没有兴趣来打扰点击。您可能只想使用网站的重型版本,并在导航中的某处有一个按钮,让他们来回切换。

于 2008-10-28T00:48:50.040 回答
0

这对我来说似乎很容易。

  1. 获取您的网络服务器日志并扫描您的索引页面以及从该索引页面链接的所有图像。
  2. 获取最后一个图像完整时间戳和索引完整时间戳之间的差异。
  3. 总计所有已完全加载的图像的大小(未缓存的 if-modified-since 304s)。
  4. 将该总数除以时差。

您应该为该用户提供每秒有效字节数。

于 2008-10-28T00:54:56.017 回答
0

Apache 网络服务器可以记录一个请求需要多长时间(以秒为单位);将此与 mod_logio 之类的内容结合起来,以告诉您实际发送给客户端的数据量并确定 KB/秒。

http://httpd.apache.org/docs/2.0/mod/mod_logio.html

http://httpd.apache.org/docs/2.0/mod/mod_log_config.html - 寻找 '%...T'

于 2008-10-28T00:57:20.567 回答
0

谷歌从 2011 年开始停止记录用户的连接速度。这是谷歌在 2011 年 3 月 23 日发布的博客文章 -

https://analytics.googleblog.com/2011/03/fond-farewell-to-connection-speed.html

于 2017-07-26T16:27:03.153 回答
0

不是直接的答案 - 但您可能正在解决错误的问题。

根据您收听的人,大约 60% 的网站用户在移动设备上浏览。移动设备具有高度不可预测的带宽——从在快速 WiFi 网络上的“无限”到远离手机信号塔时的“1990 年代拨号”。如果他们将 50% 的时间花在 100Mbps 的企业 wifi 上,而将一半的时间花在 500Kbps 的蜂窝网络上,那么在 50% 的时间里,平均值将不能很好地反映他们的体验。

如果您查看平均值并说“嘿,平均值远远超过 10Mbps,所以我们可以假设 1Mbps 是一个安全的最小值”,您的用户将有一半的时间体验很糟糕。

此外,文件大小、Web 浏览器的并发下载数量以及最终用户的主观体验之间存在复杂的相互作用。如果你有一个总共需要 5000Kb 下载的网页,并且在页面完全下载之前它不会渲染任何东西,那么它会感觉超级慢。如果您逐步加载项目,并在用户滚动时延迟加载,那么网站会感觉很快。

接下来,您将获得浏览器缓存——如果您有一个庞大的网站,但您可以在浏览器中缓存大量资产,那么主观体验会非常好(在第一次下载之后)。

我的建议是商定您的站点将支持的最低带宽以及合理的经验 - 并基于您目标市场的移动网络性能。在移动覆盖良好的国家,我假设为 500Kbps;在拥有广泛 4G 的国家/地区,我会达到 1Mbps。

于 2017-07-26T16:54:36.943 回答