Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typo3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何模拟慢速互联网连接以获得用户体验?_Javascript_Throttling - Fatal编程技术网

Javascript 如何模拟慢速互联网连接以获得用户体验?

Javascript 如何模拟慢速互联网连接以获得用户体验?,javascript,throttling,Javascript,Throttling,我想知道是否有可能根据用户的选择,在访问网站时限制用户的互联网速度。这对于小规模测试用户对不同互联网速度的反应是必要的。我的解决办法是让用户在chrome开发工具中手动调节速度,但我更希望这是最后一个选项。任何实现这一点或类似目标的选择都将是惊人的。多谢各位 编辑:我只是想澄清一下,我希望在网站本身中对节流功能进行编码,这样用户就不必手动安装某些东西或设置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并使用
    src
    属性刷新它,就像图像一样。您可以使用window.frames[].stop(),来模拟冻结/停止的iframe

  • 视频有时会加载iFrame,这同样很难模拟网络延迟。与图像不同,重新加载视频将重置播放时间。顺便说一句,没有办法轻易地模拟视频延迟(如果不大幅改变视频播放逻辑)

  • 而且。。。如果你真的喜欢的话。继续并覆盖不同的事件,例如来自的事件


除了js,还有很多解决方案
  • 使用Chrome开发工具(如上所述最简单)
  • 如果站点连接到您自己的服务器。在响应模拟服务器拥塞之前添加延迟
  • 使用/创建更改网络速度的Chrome扩展
  • 创建可以运行站点的浏览器,并相应地更改网络速度
  • 安装软件以控制操作系统上的网络设置
  • 更改路由器上的网络速度

对于linux,你可以使用网络仿真。我在谷歌上发现了两个问题:|笨拙与Chrome开发工具类似,但我的问题更多的是,是否有一种方法可以通过在网站中编写代码来增加这种体验,这样用户就不必安装某些东西,也不必在Chrome开发工具中手动设置限制。谢谢