CPU对JavaScript setInterval的影响有多大
我编写了一个小的jquery插件,它基本上将html元素中的所有单词转换为跨度,使它们不可见,然后将它们动画化为视图。我这样做是为了定义加载整个元素所需的时间,基于测试,数学似乎是正确的,但实际上需要更长的时间 参见JSFIDLE: 注意变量“per”和“ms”,这基本上告诉它每“ms”毫秒处理“per”字数 在日志中,您将看到它每1ms处理1个单词,这将导致更快的加载时间 所以我只是想知道,有没有可能CPU在这里形成了一个瓶颈?在这种情况下,JS将项目淡入视图,这是由CPU处理的,而CPU在图形处理方面不是很快CPU对JavaScript setInterval的影响有多大,javascript,jquery,performance,cpu,Javascript,Jquery,Performance,Cpu,我编写了一个小的jquery插件,它基本上将html元素中的所有单词转换为跨度,使它们不可见,然后将它们动画化为视图。我这样做是为了定义加载整个元素所需的时间,基于测试,数学似乎是正确的,但实际上需要更长的时间 参见JSFIDLE: 注意变量“per”和“ms”,这基本上告诉它每“ms”毫秒处理“per”字数 在日志中,您将看到它每1ms处理1个单词,这将导致更快的加载时间 所以我只是想知道,有没有可能CPU在这里形成了一个瓶颈?在这种情况下,JS将项目淡入视图,这是由CPU处理的,而CPU在图
这听起来很傻,我希望这些天CPU会嘲笑这样一点点工作量 这是由于浏览器的JavaScript实现强制的最小超时。你不能有1毫秒的超时,它比这个稍多。考虑到JavaScript在实际金属上运行需要经过大量的抽象层,这里已经有了一个很大的工作量。考虑到JavaScript本身,绝大多数工作都不在JavaScript中;它位于浏览器的DOM中,因为它必须创建一个由
span
标记组成的叶子繁重的树,更不用说它们各自的内联样式了。好吧,所以JS基本上不是瓶颈。。DOM是。真遗憾,我想我暂时还不能解决这个问题。请随意提交您的评论作为回答。似乎就是这样。我只是在Chrome上试用过,它的加载速度明显更快(我当时使用的是Firefox)。我明白他们为什么要设置这个限制,但同时,这让他们觉得这是一个防止滥用的讨厌的解决办法。也许吧,但真的有必要暂停1毫秒吗?您是否尝试过在每个函数调用中处理多个span
?你真的不知道10个单词是同时出现还是延迟1毫秒。是的,这可能是一个很好的折衷方案,谢谢你的建议。我按照你的建议做了,设置为每5毫秒出现一次,结果看起来与Chrome完全一样(即,它起作用了,谢谢!)。不过仍然很奇怪,Firefox似乎在自动调整我给它的时间间隔,使其达到一个更大的数字,但这个数字显然高于浏览器允许的最小值。奇怪女士。正如我在文档中回忆的那样,4ms超时最小值是从v4开始在FF中使用的,但可能只有当您将浏览器切换到符合标准的模式时才使用?您是否尝试过使用HTML5或XHTML DOCTYPE?