Browser 什么设置浏览器(如firefox)上的渲染速率
所有浏览器(通过实验)似乎都以大约20赫兹的频率在屏幕上呈现html(即,它们每秒刷新屏幕20次),即每50毫秒一次Browser 什么设置浏览器(如firefox)上的渲染速率,browser,html-rendering,Browser,Html Rendering,所有浏览器(通过实验)似乎都以大约20赫兹的频率在屏幕上呈现html(即,它们每秒刷新屏幕20次),即每50毫秒一次 通过研究/实验和常见的观察,人类以大约10赫兹(每秒十次)的速度“决定事情”——例如,试着在一秒钟内做出十张不同的脸——这是可能的——但实际上并没有更快(类似于点击键和点击外汇买卖按钮) 人类的反应速度不能超过10赫兹(100毫秒)——也就是说,我们是100毫秒的生物 但是,人类可以在10-50赫兹的频率下检测到恼人的“闪烁” 因此,浏览器的“屏幕刷新”频率在20赫兹左右对事件做
B.没有“其他语言或其他程序”的回答,谢谢。如果问题中没有代码示例来查看错误所在,我只能猜测您正在使用
setTimeout()
制作动画。(不管怎么说,听起来就是这样,快速浏览一下您提到的站点确实会发现代码中有不少setTimeout
调用)
这是一个问题,因为setTimeout()
被“钳制”为4ms的最小超时时间。这是API的一个精心设计的功能,以防止失控脚本使浏览器无法使用,但它确实意味着setTimeout()
并不真正适合用于动画
幸运的是,有一个可供选择的API是专门为动画设计的。您应该使用requestAnimationFrame()
,而不是setTimeout()
requestAnimationFrame()
在下一次可用的屏幕刷新时触发(每秒最多60次,但如果计算机负载过重或动画脚本太复杂,无法在一个刷新周期内完成,则会减慢速度)
还有其他选项可以更频繁地触发javascript事件(更多信息请参见),但对于动画,您应该坚持使用
requestAnimationFrame()
;这就是它的设计目的。请忽略我的几个打字错误。。。。thanksI已经扩展了标签,以满足Firefox Gecko布局引擎用户的需求——基本上,我正在想象一个用户或HTML“点击”的“Firefox TURBO按钮”,让Gecko获得更大的CPU和硬件资源份额(即“Fastfox”按钮)。你做了哪些实验来获得你描述的结果?浏览器实际上可以以每秒60帧的速度制作动画(即屏幕刷新率)。我怀疑你的实验是基于调用setTimeout()
,超时为零?是这样吗?如果是这样的话,您的实验是有缺陷的,因为setTimeout()
API上有明确的限制;请提供更多信息,以及如何应对。好的,谢谢spudley-这就是我目前所需要的-我已经忘记了我在实验中做了什么-那是很久以前的事了-我将在这里检查并在评论中报告-我将很快(下周)这样做-在我真正检查之前,猜测没有任何意义-但从表面上看,这似乎对我来说是个好消息,60赫茨将是可以容忍的。。。。谢谢你的评论。。。。布莱恩:谢谢——这就是我目前所需要的——我将在下周调查——并(在这里)汇报——但是