js定时器的一些小问题

 1 js中定时器分为两种:setInterval和setTimeout, 但是在代码的执行中,定时器的优先级最低,系统里其他不在执行的时候,它才开始。例子如下:
 2
 3 <script>
 4 window.onload=function(){
 5     setInterval(function(){
 6         alert(1);
 7     },10);
 8     for(var i=0;i<1000000;i++){
 9         for(var j=0;j<1000000;j++){
10             var a=10;
11              a*=5;
12         }
13
14     }
15     alert(a);
16 };
17 </script>
18
19 定时器里面的执行时间为10毫秒,   for循环里面为100万毫秒。打开页面的时候一直处于刷新状态,而不是先弹出1, 刷新一段时间后,先弹出50;再弹出1;
20
21
22 第二个例子:
23
24 <script>
25 window.onload=function (){
26     var oMin=document.getElementById(‘min‘);
27     var oSec=document.getElementById(‘sec‘);
28     var oMin2=document.getElementById(‘min2‘);
29     var oSec2=document.getElementById(‘sec2‘);
30
31     var start=new Date();
32     var s2=0;
33
34     setInterval(function (){
35         var now=new Date();
36
37         var s=parseInt((now.getTime()-start.getTime())/1000);
38
39         s2+=0.01;
40
41         oMin.innerHTML=parseInt(s/60);
42         oSec.innerHTML=s%60;
43
44         oMin2.innerHTML=parseInt(s2/60);
45         oSec2.innerHTML=parseInt(s2%60);
46     }, 10);
47
48     document.getElementById(‘div1‘).innerHTML=new Date();
49 };
50 </script>
51 </head>
52
53 <body>
54 <div id="div1"></div>
55 <span id="min">00</span>:<span id="sec">00</span><br>
56 <span id="min2">00</span>:<span id="sec2">00</span>
57 </body>
58 </html>
59 上下两个秒表经过一段时间后纯在了时间差     问题出现在s2+=0.01; 定时器会受系统其它函数的影响,因而影响其性能。导致存在误差-------也就是说以后遇到时间的时候,尽量用系统的时间来处理。比如:
60
61 秒表:
62
63 var start=new Date();
64
65 setInterval(function(){
66
67 var now=new Date();
68 var s=parseInt((now.getTime()-start.getTime())/1000);
69
70 },1000),
71
72 也可以实现秒表效果。

  

时间: 2024-10-29 10:46:43

js定时器的一些小问题的相关文章

js图片轮换经典小例子

使用js脚本实现图片轮换.图片轮播的小例子,纯js实现的,感觉不错,收藏下. 例子,js脚本实现图片轮换代码. <script type="text/javascript"> var NowFrame = 1; //初始化显示第几张 var MaxFrame = 3; //最大显示几张 function show() { for (var i = 1; i < (MaxFrame + 1); i++) { if (i == NowFrame) document.get

js定时器的使用(实例讲解)

js定时器的使用(实例讲解) 作者: 字体:[增加 减小] 类型:转载 时间:2014-01-06我要评论 本篇文章主要介绍了js中定时器的使用方法.需要的朋友可以过来参考下,希望对大家有所帮助 在javascritp中,有两个关于定时器的专用函数,分别为: 1.倒计定时器:timename=setTimeout("function();",delaytime);2.循环定时器:timename=setInterval("function();",delaytime

原生JS实现的h5小游戏-植物大战僵尸

代码地址如下:http://www.demodashi.com/demo/12755.html 项目介绍 本项目是利用原生js实现的h5小游戏-植物大战僵尸,主要结合了一下自己对于h5小游戏的理解,结合面向对象的编程思想进行开发,在实现时使用了部分es6语法,对于es6语法不太熟悉的小伙伴可以先查阅相关资料了解一下. 如有需要,可根据自己的需求修改源码样式.源码配置属性代码,实现个性化定制. 以下为文件目录结构示意图,核心代码在js文件夹下的四个common.js.main.js.game.js

JS定时器做物体运动

JS定时器是函数 setInterval(函数体/函数名  , 时间) 清楚定时器 clearInterval(函数) 时间单位(毫秒) 1000毫秒  = 1秒 首先我们要知道用JS定时器能干什么?定时器的原理是什么? 我的理解为,定时器是能让一个物体根据规定的时间做规定的移动,而物体运动是怎样的效果呢?你可以理解为一个人走路,要走到某个位置,要走到这个位置肯定是一步步移动才能达到,而不是瞬间就到达的,所以定时器的作用更像是让物体像人一样走到相应的位置 比如: 规定一个横形状方块,其中包裹一个

关于js数组的一道小考题

网上看到的一道关于js数组的小考题,借此学习练习一下,也是拿来作为博客开篇之作吧! 题目如下: 给定一个随机数组,数组可能包含数组(也就是说数组元素可能为数组).要求用js实现一个函数,返回该数组中所有元素,重复的要求去掉.例如:数组[2,3,[4,6,[3,8]],12,10],返回结果为:[2,3,4,6,8,12,10]. 我的答案如下:(额外增加了排序) 1 var arr = [2,3,[4,6,[3,8,[15,16,[17,18,[1,2,3,[19,20]]]]],[13,14]

C#-WebForm JS定时器(转)

C#-WebForm JS定时器 JS定时器: 1.window.setTimeout(function(){},3000) 延迟3秒执行 2.window.setInterval(function(){},3000) 也叫重复器,每3秒重复相同的事件 关闭定时器: var timer = window.setTimeout(function(){ window.clearTimeout("timer"); },3000); var timer = window.setInterval

C#-WebForm JS定时器

JS定时器: 1.window.setTimeout(function(){},3000) 延迟3秒执行 2.window.setInterval(function(){},3000) 也叫重复器,每3秒重复相同的事件 关闭定时器: var timer = window.setTimeout(function(){ window.clearTimeout("timer"); },3000); var timer = window.setInterval(function(){ wind

JS打造的点灯小游戏

类似于模方游戏的网页小游戏代码,游戏玩法:在方格上点击,你可以将下面的方格全部填成蓝色吗?快开动你智慧脑筋,看看有什么技巧与规律. <HTML> <HEAD> <TITLE>接触角测定仪</TITLE> <META http-equiv=Content-Type content="text/html; charset=gb2312"> <style type="text/css"> <!-

移动Web与js定时器暂停或不准确计时的问题解决

PC 上的 Firefox.Chrome 和 Safari 等浏览器,都会自动把未激活页面中的 JavaScript 定时器(setTimeout.setInterval)间隔最小值改为 1 秒以上:而移动设备上的浏览器往往会直接冻结未激活页面上的所有定时器」.今天继续聊一聊 JavaScript 定时器与移动 Web 这个话题. 计时器 最简单的计时器只需要一个时间变量和固定间隔运行的函数就可以了,定期把上一次时间(默认为系统初始时间)加上运行间隔就是当前时间了.在 PC 上,这样实现的计时器