js中定时器使用方法经验总结
前言,最近在做一个音频播放项目的时候,碰到播放时间精度的问题,捣鼓了几天,最终巧妙的运用定时器去降低了错误发生频率
正题,下面是对定时器的使用总结,如有错误之处,请读者加以纠正.
延迟执行(1次)
- setTimeout
定义
- setTimeout() 方法用于在指定的毫秒数后调用函数或计算表达式。
用法(不带参数函数)
- 第一种
- setTimeout(function () {
}, timeout); - demo
// 测试延迟执行的函数
function Fun1() {
alert("不带参数函数");
} setTimeout(function(){
Fun1();
}, 2000);
//或者下面这种写法
setTimeout(() => {
Fun1();
}, 2000);
- setTimeout(function () {
- 第二种
- setTimeout(function,timeout);
- demo
// 测试延迟执行的函数
function Fun1() {
alert("不带参数函数");
}
//注意这里调用的函数不加括号
setTimeout(Fun1, 2000);
- 第三种
- setTimeout('function()',timeout);
- demo
// 测试延迟执行的函数
function Fun1() {
alert("不带参数函数");
}
//注意这里调用的函数需要加括号
setTimeout('Fun1()',2000);
- 第一种
用法(带参数函数)
- 第一种
- setTimeout(function () {codes...
}, timeout); - demo
// 测试延迟执行的函数
function Fun2(str1,str2) {
alert("带参数函数"+str1+str2);
} setTimeout(function(){
Fun2('123','456');
}, 2000);
//或者下面这种写法
setTimeout(() => {
Fun2('123','456');
}, 2000);
- setTimeout(function () {codes...
- 第二种
- setTimeout(function,timeout,param1,param2,...);
- demo
// 测试延迟执行的函数
function Fun2(str1,str2) {
alert("带参数函数"+str1+str2);
}
//注意这里调用的函数不加括号
setTimeout(Fun2, 2000,'参数1内容','参数2内容');
- 第三种
- setTimeout('function(param1,param2,...)',timeout);
- demo
// 测试延迟执行的函数
function Fun2(str1,str2) {
alert("带参数函数"+str1+str2);
}
//注意这里调用的函数需要加括号
setTimeout('Fun2("参数1内容","参数2内容")',2000);
- 第一种
停止定时器
- clearTimeout(timerHandle);
- demo
function Fun3(str1) {
alert(str1);
}
//设置定时器
var timer=setTimeout(Fun3,2000,"参数1");
//清除指定定时器
clearTimeout(timer)
延迟执行(多次)
- setTimeout
定义
- setInterval() 方法用于在间隔指定的毫秒数后调用函数或计算表达式,重复执行。
跟setTimeout()用法基本一致
用法(不带参数函数)
- 第一种
- setInterval(function () {
}, timeout); - demo
// 测试延迟执行的函数
function Fun1() {
alert("不带参数函数");
} setInterval(function(){
Fun1();
}, 2000);
//或者下面这种写法
setInterval(() => {
Fun1();
}, 2000);
- setInterval(function () {
- 第二种
- setTimeout(function,timeout);
- demo
// 测试延迟执行的函数
function Fun1() {
alert("不带参数函数");
}
//注意这里调用的函数不加括号
setInterval(Fun1, 2000);
- 第三种
- setInterval('function()',timeout);
- demo
// 测试延迟执行的函数
function Fun1() {
alert("不带参数函数");
}
//注意这里调用的函数需要加括号
setInterval('Fun1()',2000);
- 第一种
用法(带参数函数)
- 第一种
- setInterval(function () {codes...
}, timeout); - demo
// 测试延迟执行的函数
function Fun2(str1,str2) {
alert("带参数函数"+str1+str2);
} setInterval(function(){
Fun2('123','456');
}, 2000);
//或者下面这种写法
setInterval(() => {
Fun2('123','456');
}, 2000);
- setInterval(function () {codes...
- 第二种
- setInterval(function,timeout,param1,param2,...);
- demo
// 测试延迟执行的函数
function Fun2(str1,str2) {
alert("带参数函数"+str1+str2);
}
//注意这里调用的函数不加括号
setInterval(Fun2, 2000,'参数1内容','参数2内容');
- 第三种
- setInterval('function(param1,param2,...)',timeout);
- demo
// 测试延迟执行的函数
function Fun2(str1,str2) {
alert("带参数函数"+str1+str2);
}
//注意这里调用的函数需要加括号
setInterval('Fun2("参数1内容","参数2内容")',2000);
- 第一种
停止定时器
- clearInterval(timerHandle);
- demo
function Fun3(str1) {
alert(str1);
}
//设置定时器
var timer=setInterval(Fun3,2000,"参数1");
//清除指定定时器
clearInterval(timer)
js中定时器使用方法经验总结的更多相关文章
- js中的tostring()方法
http://blog.sina.com.cn/s/blog_85c1dc100101bxgg.html js中的tostring()方法 (2013-11-12 11:07:43) 转载▼ 标签: ...
- 秒味课堂Angular js笔记------Angular js中的工具方法
Angular js中的工具方法 angular.isArray angular.isDate angular.isDefined angular.isUndefined angular.isFunc ...
- JS中通过call方法实现继承
原文:JS中通过call方法实现继承 讲解都写在注释里面了,有不对的地方请拍砖,谢谢! <html xmlns="http://www.w3.org/1999/xhtml"& ...
- jQuery与JS中的map()方法使用
1.jquery中的map()方法 首先看一个简单的实例: $("p").append( $("input").map(function(){ return $ ...
- JavaScript -- 时光流逝(二):js中数组的方法
JavaScript -- 知识点回顾篇(二):js中数组的方法 1. 数组 (1)定义数组,数组赋值 <script type="text/javascript"> ...
- ASP.NET#使用母版时,如果要使用js中的getElementById()方法取得某个内容页的元素时要注意的问题
当使用母版,要使用js中的getElementById()方法取得某个内容页的元素时,所选取的id并不是母版中内容页的id,而是在设计内容页时设定的id例子:母版页: ...... <head ...
- JS与OC交互,JS中调用OC方法(获取JSContext的方式)
最近用到JS和OC原生方法调用的问题,查了许多资料都语焉不详,自己记录一下吧,如果有误欢迎联系我指出. JS中调用OC方法有三种方式: 1.通过获取JSContext的方式直接调用OC方法 2.通过继 ...
- JS中split使用方法和数组中元素的删除
JS中split使用方法和数组中元素的删除 JS中split使用方法 <script language="javascript"> function spli(){ d ...
- JS中的splice方法
JS中的splice方法 定义和用法 splice() 方法向/从数组中添加/删除项目,然后返回被删除的项目. 注释:该方法会改变原始数组(集合). 语法 arrayObject.splice(ind ...
随机推荐
- vs2017源文件创建代码自动版权声明注释
原来在vs2015下用的挺好,顺便移植到2017下. 用文本打开,在其头部加上 “C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterpr ...
- TreeMap----的实现原理(红黑树)
TreeMap的实现是红黑树算法的实现,所以要了解TreeMap就必须对红黑树有一定的了解,其实这篇博文的名字叫做:根据红黑树的算法来分析TreeMap的实现,但是为了与Java提高篇系列博文保持一致 ...
- SQL Server ->> Computed Column(计算列)
Computed Column(计算列)是自SQL Server 2005开始就有的特性.计算列的定义是一个表达式.表达式可以是非计算列,常量,函数间的组合.但是不可以是子查询. 计算列数据固化 默认 ...
- NS Simulation: Scheduling Events (examples inside)
NS Simulation: Scheduling Events Simulation time A similation system (such as NS) must have a built- ...
- javascript 随机数 生成 n-m
例子:生成800-1500的随机整数,包含800但不包含1500 代码如下: 1500-800 = 700 Math.random()*700 var num = Math.random()*700 ...
- git error:【fatal: unable to access 'https://github.com/userId/prjName.git/': err or setting certificate verify locations:】
$ git pull origin master fatal: unable to access 'https://github.com/userId/prjName.git/': err or se ...
- 一个典型的后台软件系统的设计复盘——(二)如何id一个事物
这个话题,可以从类与对象说起. Dog dog1 = new Dog(); 哪个是类,哪个是对象?这个问题搞不清楚,后面就无从说起了.然后两个程序员之间沟通说,那个狗有问题.除非两人很默契,不然另一人 ...
- React v15.5.0更新说明 & v16.0.0更新预告
React今日发布了15.5.0版本,同时这也将是以15开头的最后一个版本,下一次发布,我们将迎来React 16.0.0 在15.5.0这一版本中,主要有以下两处改动: 独立React.PropTy ...
- 1100 final standings
http://acm.timus.ru/problem.aspx?space=1&num=1100 link to the problem make a fast stable sorting ...
- ThinkPHP最新版本SQL注入漏洞
如下controller即可触发SQL注入: code 区域 public function test() { $uname = I('get.uname'); $u = M('user')-> ...