setInterval最短极限有多快?

2024-06-19 21:18
文章标签 最短 极限 setinterval

本文主要是介绍setInterval最短极限有多快?,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

      在几年前的一次测试里,几乎所有浏览器的定时器最短间隔都是64/1000秒,于是我默认了这个答案。但在今天无意中去测试了下,发现结果大不一样,所以要更新下过去的结论。


      平时我们为了最频繁的速度执行某段代码,一般都写成setInterval(XXX, 1)。虽然明知是达不到1ms的间隔的,但我们总希望浏览器能尽可能快些。但浏览器究竟能到达多快呢?我们写个计数器测试下:

var n = 0;
var max = 0;function tick()
{n++;
}function report()
{if(n > max)max = ndocument.title = n + " Max:" + max;n = 0;
}setInterval(tick, 1);
setInterval(report, 1000);

      在IE里,仍然是那经典的数字:64,每15.625ms触发一次。当然这并不是浏览器的BUG,如果你做过windows程序开发的话,应该知道SetTimer API的精度是很低的,差不多每秒64次,显然IE里是用了这个。这意味着如果你要做动画或者游戏的话,最高的FPS可以到达64。不过对于如今清一色的液晶显示器来说,这个速度还是足够了,因为液晶只有60HZ的刷新率。事实上,实际应用中能达到64的FPS已是相当不错了,毕竟一次复杂的渲染要控制在16ms内,还是比较有挑战的。而且64FPS也远超人眼的分辨,给人的感觉已是非常平滑了。

      当然,上述只代表IE的测试结果。事实上其他的浏览器在一次次更新后,如今已是各不相同了。下面列出了在各个浏览器下,测试了一段时间后记录到的最大值:

      IE: 64

      FireFox: 75

      Opera: 512

      Safari: 94

      Chrome: 207

      显然,用setInterval(XXX, 1)来追求最快的渲染是很不合理的,不仅浪费了大量的资源,而且在不同的浏览器下表示出的速度也各不一样。因此对于简单的界面渲染,用最简单的办法就是setInterval(XXX, 17)或者再高点。如果是复杂的界面,那就得自己维护一个定时器,并且控制跳帧了。

这篇关于setInterval最短极限有多快?的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1076172

相关文章

最短路径之Floyd_Warshall算法

int d[Max_v][Max_v];//d[u][v]表示权值int V;//顶点数void Floyd(){for(int k = 0; k < V; k++)for(int i = 0; i < V; i++)for(int j = 0; j <V; j++)d[i][j] = min(d[i][j],d[i][k] + d[k][j]);}

【matlab 求极限】limit函数求极限

syms x;y1=(4*x^3-2*x^2+x)/(3*x^2+2*x);limit(y1,x,0) >> syms x;y1=(4*x^3-2*x^2+x)/(3*x^2+2*x);limit(y1,x,0)ans =1/2>>

JD 1008:最短路径问题

OJ题目:click here~~ 题目分析:无向图,每条边有长度和花费,求点s到t的最短路径长度和花费。若有相同的最短路径长度,找出最少的花费的那条。 邻接表 + Dijstra + 优先队列 AC_CODE const int maxn = 1008 ;const int inf = 1<<30 ;vector<int> g[maxn] ;int len[maxn][maxn

量化交易面试:什么是中心极限定理?

中心极限定理(Central Limit Theorem, CLT)是概率论和统计学中的一个重要定理,它描述了在一定条件下,独立随机变量的和的分布趋向于正态分布的性质。这个定理在量化交易和金融分析中具有重要的应用价值。以下是对中心极限定理的详细解释: 基本概念: 中心极限定理指出,当我们从一个具有任意分布的总体中抽取足够大的样本时,样本均值的分布将近似于正态分布,无论原始总体的分布是什么样的。

代码随想录 刷题记录-28 图论 (5)最短路径

一、dijkstra(朴素版)精讲 47. 参加科学大会 思路 本题就是求最短路,最短路是图论中的经典问题即:给出一个有向图,一个起点,一个终点,问起点到终点的最短路径。 接下来讲解最短路算法中的 dijkstra 算法。 dijkstra算法:在有权图(权值非负数)中求从起点到其他节点的最短路径算法。 需要注意两点: dijkstra 算法可以同时求 起点到所有节点的最短路径权值不

《挑战极限,畅享精彩 ——韩星地带:逃脱任务 3 震撼来袭》

在综艺的浩瀚星海中,总有那么一些节目如璀璨星辰般闪耀,而《韩星地带:逃脱任务 3》无疑就是其中的佼佼者。 2024 年,这个令人热血沸腾的真人秀节目再度回归,为观众带来一场惊心动魄的冒险之旅。节目由韩国 “国民 MC” 刘在石领衔主持,他那无与伦比的综艺感和控场能力,如同定海神针般,稳稳地把控着节目的节奏。权俞利,少女时代的魅力成员,勇敢与智慧并存,在节目中展现出令人惊叹的一面。新加入的金东炫

最短路径(Shortest Path)

单源最短路径问题 Dijkstra算法:基于递推的思想设计 未达顶点的最短路径一定是由已到达顶点的最短路径求出 所有顶点之间的最短路径,任意两个顶点之间的最短路径 Floyd算法:只是Dijkstra最短路径算法的加强,其本质还是递推

原生js实现轮播图-setInterval, setTimeout

原生js实现轮播图-setInterval, setTimeout 目录 文章目录 前言代码实现`setTimeout`和递归实现`setInterval` 效果展示 前言 利用原生js实现轮播图代码复制可用 代码实现 setTimeout和递归实现 <!DOCTYPE html><html lang="en"><head><meta charset="UTF-8"

Contest Hunter:0103 最短Hamilton路径(dp,二进制压缩)

描述 给定一张 n(n≤20) 个点的带权无向图,点从 0~n-1 标号,求起点 0 到终点 n-1 的最短Hamilton路径。 Hamilton路径的定义是从 0 到 n-1 不重不漏地经过每个点恰好一次。 输入格式 第一行一个整数n。 接下来n行每行n个整数,其中第i行第j个整数表示点i到j的距离(一个不超过10^7的正整数,记为a[i,j])。 对于任意的x,y,z,数据保证 a

使用setInterval实现渐隐藏

//使用setInterval实现渐隐藏function myFadeout(ele){var target = 1,speed = 1/50;var timer = setInterval(function(){if(!parseFloat(ele.style.opacity) > 0){ele.style.opacity = 1;}if(target>0){target -= speed;el