Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/372.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 - Fatal编程技术网

有没有一种方法可以限制javascript性能以模拟速度较慢的客户端

有没有一种方法可以限制javascript性能以模拟速度较慢的客户端,javascript,Javascript,我在一个使用jQuery的网站上工作,并且有相当数量的javascript是使用$(document.ready()运行的。在我的开发机器上,一切都运行得很好,但它是一台非常强大的机器。我收到过一些使用旧硬件的人的报告,他们的行为似乎很奇怪,我确信这取决于在较慢的机器上处理这个初始javascript所花费的时间 很明显,解决方案是对最初的javascript进行分类,但这让我想知道——有没有人知道在Chrome或Firefox中降低javascript执行速度的方法,以便能够在我的开发机器上模

我在一个使用jQuery的网站上工作,并且有相当数量的javascript是使用
$(document.ready()
运行的。在我的开发机器上,一切都运行得很好,但它是一台非常强大的机器。我收到过一些使用旧硬件的人的报告,他们的行为似乎很奇怪,我确信这取决于在较慢的机器上处理这个初始javascript所花费的时间

很明显,解决方案是对最初的javascript进行分类,但这让我想知道——有没有人知道在Chrome或Firefox中降低javascript执行速度的方法,以便能够在我的开发机器上模拟这些较慢的客户端

干杯

更新: 当这个问题发布的时候,并没有和现在一样的工具。在那个时候,虚拟机选项是最好的选择,因此我把它作为公认的答案。然而,这些天我会直接使用Chrome开发工具,而不是像Oded Niv建议的那样在后台运行以消耗CPU


如果您有多核处理器,请使用任务管理器将IE限制为单核,也可以将一些CPU密集型应用程序限制为同一核。

我不知道您可以依赖或控制什么,但您可以尝试安装两个防病毒程序(或至少安装与您拥有的CPU核数相同的程序),开始对每个浏览器进行完整扫描,并在运行这些完整扫描的情况下进行测试。

我做到了这一点,不到一分钟,我的firefox就耗尽了我所有的内存。您可以通过将setTimeout()更改为更高的值来减缓重载。几乎使一切运行缓慢,切换标签和其他页面加载

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>Untitled Document</title>
<style type="text/css">
    body, html{
        height:100%; 
    }

</style>
<script language="javascript" type="text/javascript">

var NUM = 0;
function addMore(){
    var cur = document.getElementById('ta').value;
    var newVal = NUM.toString();
    if(cur){
        newVal = newVal+cur;
    }
    NUM++;
    document.getElementById('ta').value = newVal;
    setTimeout("addMore()",1);
}

</script>
</head>

<body onload="addMore()">

<textarea id="ta" style="width:80%; height:80%;">0</textarea>

</body>
</html>

无标题文件
正文,html{
身高:100%;
}
var NUM=0;
函数addMore(){
var cur=document.getElementById('ta')。值;
var newVal=NUM.toString();
如果(当前){
newVal=newVal+cur;
}
NUM++;
document.getElementById('ta')。value=newVal;
setTimeout(“addMore()”,1);
}
0

我会使用虚拟机并限制其资源。如果你不喜欢虚拟机,那么我会去旧货市场、旧货店等找到一台旧机器,并将其用作测试平台。你永远无法修补它,用垃圾恶意软件程序填满它,然后它就会像“普通用户”的体验一样:-)

虚拟化就是答案! 你可以使用VirtualBox,它是免费的。
你可以用它来模拟一台速度较慢的机器这可能不是最好的解决方案,但可以肯定的是运行一台虚拟机,在那里你可以指定所有的硬件规格,只要它们低于你真正的机器。
看看

比虚拟机更简单,我相信它是一种可以减慢选定应用程序速度的工具(在你的例子中是浏览器过程)

您可以尝试将浏览器进程的优先级设置为最低值

此外,您可以尝试这些工具之一。它们基本上是为了减缓系统/特定应用程序的速度,以便旧游戏可以在新系统上玩。可能适合您的测试用例


使用Fiddler-免费-允许您模拟连接速度。拨号、ADSL等


您还可以尝试通过操作系统中的电源管理设置来降低CPU的速度。例如,对于Win 8,您可以转到“控制面板\系统和安全\电源管理\更改电源方案->更改高级电源设置->CPU电源管理->最大CPU频率级别”(抱歉,这是从非英语Win8 UI翻译过来的,但我认为不难找到设置)。这在某种程度上有所帮助。

Chrome developer tools->Timeline
下,您现在可以选择降低CPU的速度,请查看下拉列表:

更新:

Chrome(ium)在新版本中进行了更改,它现在位于
性能
选项卡下,您必须单击角落中的设置按钮才能显示此功能:


啊,当然可以。他希望有一个稍微懒散的选择,比如FF/Chrome扩展,但这可能更明智。干杯我真的很喜欢这个想法,但是在快速浏览了列表之后,运行web浏览器的大多数选项似乎都是基于windows的,这对我没有好处。请提供更多信息/链接。。。谷歌搜索fiddler没有多大帮助。仅供参考:合并自供参考:合并自供参考:合并自供参考:合并自这应该是选择的答案。我同意,但没有理由否决投票。这是5年前的事了,当时这些工具还没有那么强大。有没有办法让管理员将其更改为正确的答案?或者OP必须这样做吗?@addsy如果你还在,你能将此标记为正确的答案吗?有关自动化,请参阅此链接: