一段简单的显示当前页面FPS的代码
2018-12-28 08:04:07来源:博客园 阅读 ()
写前端代码,尤其是做一个前端框架的时候,经常需要及时知道代码的大致性能,这时候如果能有个好的办法能一直看到当前页面的fps就好了。
整体思路是一秒有一千毫秒,先记录当前时间作为最后一次记录fps的时间,通过 requestAnimationFrame 回调不断给累加fsp计数器,并且判断上次记录fps的时间是否达到1000毫秒以上,如果满足条件,就将fps累加器的值作为当前fps显示,并且重置fps累加器。
这里写了段比较简单的显示FPS的代码:
1 var showFPS = (function () { 2 // noinspection JSUnresolvedVariable, SpellCheckingInspection 3 var requestAnimationFrame = 4 window.requestAnimationFrame || //Chromium 5 window.webkitRequestAnimationFrame || //Webkit 6 window.mozRequestAnimationFrame || //Mozilla Geko 7 window.oRequestAnimationFrame || //Opera Presto 8 window.msRequestAnimationFrame || //IE Trident? 9 function (callback) { //Fallback function 10 window.setTimeout(callback, 1000 / 60); 11 }; 12 13 var dialog; 14 var container; 15 16 var fps = 0; 17 var lastTime = Date.now(); 18 19 function setStyle(el, styles) { 20 for (var key in styles) { 21 el.style[key] = styles[key]; 22 } 23 } 24 25 function init() { 26 dialog = document.createElement('dialog'); 27 setStyle(dialog, { 28 display: 'block', 29 border: 'none', 30 backgroundColor: 'rgba(0, 0, 0, 0.6)', 31 margin: 0, 32 padding: '4px', 33 position: 'fixed', 34 top: 0, 35 right: 'auto,', 36 bottom: 'auto', 37 left: 0, 38 color: '#fff', 39 fontSize: '12px', 40 textAlign: 'center', 41 borderRadius: '0 0 4px 0' 42 }); 43 container.appendChild(dialog); 44 } 45 46 function calcFPS() { 47 offset = Date.now() - lastTime; 48 fps += 1; 49 50 if (offset >= 1000) { 51 lastTime += offset; 52 displayFPS(fps); 53 fps = 0; 54 } 55 56 requestAnimationFrame(calcFPS); 57 }; 58 59 function displayFPS(fps) { 60 var fpsStr = fps + ' FPS'; 61 62 if (!dialog) { 63 init(); 64 } 65 66 if (fpsStr !== dialog.textContent) { 67 dialog.textContent = fpsStr; 68 } 69 } 70 71 return function (parent) { 72 container = parent; 73 calcFPS(); 74 }; 75 })(); 76 77 showFPS(document.body);
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
上一篇:Vue项目打包常见问题整理
下一篇:WebWorker 简单使用方式
- JS简单去除数组中重复项的方法 2020-03-16
- JS判断浏览器是否安装flash插件的简单方法 2020-03-12
- js调用刷新界面的几种方式 2020-03-05
- JavaScript简单下拉菜单特效 2020-02-22
- 鼠标悬浮停留三秒后自动显示大图js代码 2020-02-21
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash