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 ...
随机推荐
- Re-thinking Deep Residual Networks
本文是对ImageNet 2015的冠军ResNet(Deep Residual Networks)以及目前围绕ResNet这个工作研究者后续所发论文的总结,主要涉及到下面5篇论文. 1. Link: ...
- C#——DataGridView选中行,在TextBox中显示选中行的内容
C#--DataGridView选中行,在TextBox中显示选中行的内容,在DataGridView的SelectionChanged实践中设置如下代码 private void dataGridV ...
- Tesseract-OCR-03-图片文字识别
Tesseract-OCR-03-图片文字识别 本篇介绍使用 Tesseract-OCR 做图片文字识别,识别手写文字的时候,正确率能达到 90%,当训练后正确率是极高的.这里介绍的图片文字识别,可以 ...
- Android碎笔录2——按键的点击变色和圆角实现
android的Button默认写出来之后都是方形的直角,并且点击感很不明显,只要在drawable中加上一个xml就能解决这个问题: <?xml version="1.0" ...
- Netty入门2之----手动搭建HttpServer
在上一章中我们认识了netty,他有三大优点:并发高,传输快,封装好.在这一章我们来用Netty搭建一个HttpServer,从实际开发中了解netty框架的一些特性和概念. netty.png 认识 ...
- Data Flow ->> Source ->> Error Output ->> Error & Truncation: Ignore Failure, Redirect Now, Fail Component
Ignore Failure: 当该字段遇到错误时,字段值被设为NULL Redirect Now: 把该行输出到SSIS的Source组件的红色输出线,这时红色输出线应该连接一个可以接受结果集的组件 ...
- LeetCode-Maximal Rectangle[code]
code: #include <iostream> #include <vector> #include <stack> #include <algorith ...
- .Net程序员应该掌握的正则表达式
Regular Expression Net程序员必然要掌握正则的核心内容:匹配.提取.替换.常用元字符. 正则表达式是用来进行文本处理的技术,是语言无关的,在几乎所有语言中都有实现. 常用元字符 . ...
- Redis 4.0+安装及配置
系统环境:CentOS 7.3 官方下载最新版:https://redis.io/download:或直接终端下载解析安装: $ wget http://download.redis.io/relea ...
- 040同步条件event
条件同步和条件变量同步差不多意思,只是少了锁功能,因为条件同步设计于不访问共享资源的条件环境,event=threading.Event():条件环境对象,初始值为False.event.isSet( ...