setTimeout()和setInterval()小结
写在前面:在写H5游戏时经常需要使用定时刷新页面实现动画效果,比较常用即setTimeout()以及setInterval()
setTimeout
描述
setTimeout(code,millisec)
setTimeout() 方法用于在指定的毫秒数后调用函数或计算表达式。
注:调用过程中,可以使用clearTimeout(id_of_settimeout)终止
| 参数 | 描述 |
|---|---|
| code | 必需,要调用的函数后要执行的 JavaScript 代码串。 |
| millisec | 必需,在执行代码前需等待的毫秒数。 |
实现刷新
setTimeout()用于延时调用指定函数,可以通过在函数中递归调用自身,实现反复调用。
<!-- setTimeout递归调用实现计时器效果: -->
<html>
<head>
<script type="text/javascript">
var t=0;
function timer(){
document.getElementById("txt").value=t;
t++;
setTimeout("timer()",1000);
}
</script>
</head>
<body>
<p>setTimeout实现计时器效果</p>
<input type="text"id="txt">
<script>
timer();
</script>
</body>
</html>
clearTimeout
clearTimeout(id_of_settimeout)
| 参数 | 描述 |
|---|---|
| id_of_settimeout | 由 setTimeout() 返回的 ID 值。 |
<!-- 调用clearTimeout()终止setTimeout() -->
<html>
<head>
<script type="text/javascript">
var t=0;
var flag;
function timer(){
document.getElementById("txt").value=t;
t++;
flag=setTimeout("timer()",1000);
}
function stop(){
clearTimeout(flag);
}
</script>
</head>
<body>
<p>setInterval实现计时器效果</p>
<input type="text"id="txt">
<input type="button" value="Stop" onclick="stop()">
<script>
timer();
</script>
</body>
</html>
setTimeinterval
setInterval(code,millisec[,"lang"])
| 参数 | 描述 |
|---|---|
| code | 必需,要调用的函数或要执行的代码串。 |
| millisec | 必需,周期性执行或调用code之间的时间间隔,以毫秒计。 |
setInterval() 方法可按照指定的周期(以毫秒计)来调用函数或计算表达式。
setInterval() 方法会不停地调用函数,直到 clearInterval() 被调用或窗口被关闭。由 setInterval() 返回的 ID 值可用作 clearInterval() 方法的参数。
<html>
<head>
<script type="text/javascript">
var t=0;
function timer(){
document.getElementById("txt").value=t;
t++;
}
</script>
</head>
<body>
<p>setInterval实现计时器效果</p>
<input type="text"id="txt">
<script type="text/javascript">
setInterval("timer()",1000);
</script>
</body>
</html>
clearInterval
clearInterval(id_of_setinterval)
| 参数 | 描述 |
|---|---|
| id_of_setinterval | 由setInterval()返回的ID值 |
<!-- 调用clearInterval()终止setInterval() -->
<html>
<head>
<script type="text/javascript">
var t=0;
var flag;
function timer(){
document.getElementById("txt").value=t;
t++;
}
</script>
</head>
<body>
<p>setInterval实现计时器效果</p>
<input type="text"id="txt">
<script type="text/javascript">
flag=setInterval("timer()",1000);
</script>
<button onclick="window.clearInterval(flag)">Stop</button>
</body>
</html>
总结
两种方式,延时调用与周期调用,调用频率达到要求时(人眼无法识别超过30帧的动画,即刷新间隔时间应小于30.3ms),可在视觉上形成动画效果。但是现在写动画不再局限于这两个函数,有CSS3以及性能更优质的requestAnimationFrame()可以用。
*参考:
https://developer.mozilla.org/zh-CN/
http://www.w3school.com.cn
*
setTimeout()和setInterval()小结的更多相关文章
- 深入理解定时器系列第一篇——理解setTimeout和setInterval
× 目录 [1]setTimeout [2]setInterval [3]运行机制[4]作用[5]应用 前面的话 很长时间以来,定时器一直是javascript动画的核心技术.但是,关于定时器,人们通 ...
- 前端开发:setTimeout与setInterval 定时器与异步循环数组
前端开发:setTimeout与setInterval 定时器与异步循环数组 前言: 开通博客园三个月以来,随笔记录了工作中遇到的大大小小的难题,也看过无数篇令人启发的文章,我觉得这样的环境是极好的, ...
- setTimeout和setInterval从入门到精通
我们在日常web前端开发中,经常需要用到定时器方法. 前端中的定时器方法是浏览器提供的,并不是ECMAScript规范中的.是window对象的方法. 浏览器中的定时器有两种, 一种是每间隔一定时间执 ...
- setTimeout和setInterval定时器使用详解测试
var len=4; while(len--){ var time=setTimeout(function(){ console.log(len); },0); console.log(time); ...
- setTimeout,setInterval原理
function a() { setTimeout(function(){alert(1)},0); alert(2); } a(); 和其他的编程语言一样,Javascript中的函数调用也是通过堆 ...
- Javascript的setTimeOut()和setInterval()的定时器用法
Javascript用来处理延时和定时任务的setTimeOut和setInterval函数应用非常广泛,它们都用来处理延时和定时任务,比如打开网页一段时间后弹出一个登录框,页面每隔一段时间发送异步请 ...
- setTimeout和setInterval的注意事项
精准问题 setTimeout的问题在于它并不是精准的,例如使用setTimeout设定一个任务在10ms后执行,但是在9ms后,有一个任务占用了5ms的cpu时间片,再次轮到定时器执行时,时间已经过 ...
- setTimeout和setInterval的区别以及如何写出效率高的倒计时
1.setTimeout和setInterval都属于js中的定时器,可以规定延迟时间再执行某个操作,不同的是setTimeout在规定时间后执行完某个操作就停止了,而setInterval则可以一直 ...
- setTimeout()与setInterval()
一.setTimeout与setInterval的用法(http://www.css88.com/archives/5804) setTimeout是超时调用,javascript是一个单线程的解析器 ...
随机推荐
- LSI SAS 2308配置操作
介绍LSISAS2308的配置操作 3.1 登录CU界面 介绍登录LSISAS2308的CU配置界面的方法. 3.2 创建RAID 介绍在LSISAS2308扣卡上创建RAID的操作方法. 3.3 配 ...
- ComboTree( 树型下拉框) 组件
本节课重点了解EasyUI中Tree(树)组件的使用方法, 这个组件依赖于Combo(下拉框)和 Tree(树)组件.一. 加载方式//class 加载方式<select id="cc ...
- 网页调用QQ聊天
把下面的复制到地址栏里,QQ号为你要聊天的人的qq号,如果你没有登录你自己的qq,首先会调出qq登录窗体. tencent://message/?uin=QQ号
- sql中视图视图的作用
视图是一个虚拟表,其内容由查询定义.同真实的表一样,视图包含一系列带有名称的列和行数据.但是,视图并不在数据库中以存储的数据值集形式存在.行和列数据来自由定义视图的查询所引用的表,并且在引用视图时动态 ...
- 一步一步教你使用Git
一步一步教你使用Git 互联网给我们带来方便的同时,也时常让我们感到困惑.随便搜搜就出一大堆结果,然而总是有大量的重复和错误.小妖发出的内容,都是自己实测过的,有问题请留言. 现在,你已经安装了Git ...
- DOM 之Range(范围)
-------<javascript高级程序设计> 12.4 范围 笔记------- DOM2级在Document类型中定义了createRange()方法,在兼容DOM的浏览器中, ...
- ECSTORE1.2 重启开启信任登陆模块(删除KEY)
1).若启用Mongodb 需要删除KEY分别为 1 2 3 be90a668d9f2eb1950bae1bf6b0835ce 939e64939c3f65cfb646e7948c5b80df 58d ...
- App轮播图
<!doctype html> <html> <head> <meta charset="utf-8"> <title> ...
- Flask学习记录之Flask-Admin
相信用过Django框架的都不会忘记它强大的Admin功能,Flask-admin是一款能够与Django Admin所媲美的扩展,能够快速创建Web管理界面,实现了用户.文件增删改查等常用功能:也可 ...
- iOS学习之下拉刷新
今天我们来给昨天的Demo加上下拉刷新和上拉加载更多的功能. 1.下拉刷新. 在viewDidLoad中调用方法addRefreshControl,下拉时可以出现风火轮加载更多的效果. - (void ...