Javascript 如何模拟慢速互联网连接以获得用户体验?
我想知道是否有可能根据用户的选择,在访问网站时限制用户的互联网速度。这对于小规模测试用户对不同互联网速度的反应是必要的。我的解决办法是让用户在chrome开发工具中手动调节速度,但我更希望这是最后一个选项。任何实现这一点或类似目标的选择都将是惊人的。多谢各位Javascript 如何模拟慢速互联网连接以获得用户体验?,javascript,throttling,Javascript,Throttling,我想知道是否有可能根据用户的选择,在访问网站时限制用户的互联网速度。这对于小规模测试用户对不同互联网速度的反应是必要的。我的解决办法是让用户在chrome开发工具中手动调节速度,但我更希望这是最后一个选项。任何实现这一点或类似目标的选择都将是惊人的。多谢各位 编辑:我只是想澄清一下,我希望在网站本身中对节流功能进行编码,这样用户就不必手动安装某些东西或设置Chrome开发工具,因为我已经知道这些解决方案。不完全确定除了Chrome开发工具之外,您还需要什么样的体验,但这里有一个替代方案 笨拙会使
编辑:我只是想澄清一下,我希望在网站本身中对节流功能进行编码,这样用户就不必手动安装某些东西或设置Chrome开发工具,因为我已经知道这些解决方案。不完全确定除了Chrome开发工具之外,您还需要什么样的体验,但这里有一个替代方案 笨拙会使您在Windows上的网络状况显著恶化,但会以管理和交互的方式进行
由于安全原因,您想要做的事情不容易实现。Chrome(和大多数其他浏览器)阻止DevTools从js脚本访问。用户必须手动和交互地按下DevTools上的按钮来更改chrome选项卡的网络速度 代表您,您应该让UX测试人员使用DevTools 尽管如此,还是有解决办法的。但它们可能很复杂
JS中的解决方案: 脏补丁: 创建对客户端执行DOS攻击的循环数据下载程序脚本。 基本上是这样的:
let delay = 100*(Math.random() +0.5);
setInterval(/*downloadStuff*/, delay);
此修复程序的问题:
- 这会在客户机上造成真正的网络拥塞,这可能不是最优的
- 由于CPU使用,导致网页延迟
更好但耗时的修复方法: 通过执行以下操作,可以模拟慢速网络环境:
- 定期请求一些ajax和xhr请求。见和。是的,你必须保留对远程呼叫的引用。(作者)
- 通过更改某些图像的
属性几秒钟,随机阻止加载这些图像。看src
- iFrame很棘手,因为它们可能来自另一个域。Chrome不支持跨域请求。要模拟慢速网络,您必须偶尔停止iframe并使用
属性刷新它,就像图像一样。您可以使用window.frames[].stop(),来模拟冻结/停止的iframesrc
- 视频有时会加载iFrame,这同样很难模拟网络延迟。与图像不同,重新加载视频将重置播放时间。顺便说一句,没有办法轻易地模拟视频延迟(如果不大幅改变视频播放逻辑)
- 而且。。。如果你真的喜欢的话。继续并覆盖不同的事件,例如来自的事件
除了js,还有很多解决方案
- 使用Chrome开发工具(如上所述最简单)
- 如果站点连接到您自己的服务器。在响应模拟服务器拥塞之前添加延迟
- 使用/创建更改网络速度的Chrome扩展
- 创建可以运行站点的浏览器,并相应地更改网络速度
- 安装软件以控制操作系统上的网络设置
- 更改路由器上的网络速度