前言,最近在做一个音频播放项目的时候,碰到播放时间精度的问题,捣鼓了几天,最终巧妙的运用定时器去降低了错误发生频率

正题,下面是对定时器的使用总结,如有错误之处,请读者加以纠正.

延迟执行(1次)

  • setTimeout

    • 定义

      • setTimeout() 方法用于在指定的毫秒数后调用函数或计算表达式。
    • 用法(不带参数函数)

      • 第一种

        • setTimeout(function () {

          }, timeout);
        • demo
          1. // 测试延迟执行的函数
          2. function Fun1() {
          3. alert("不带参数函数");
          4. }
          5. setTimeout(function(){
          6. Fun1();
          7. }, 2000);
          8. //或者下面这种写法
          9. setTimeout(() => {
          10. Fun1();
          11. }, 2000);
      • 第二种
        • setTimeout(function,timeout);
        • demo
          1. // 测试延迟执行的函数
          2. function Fun1() {
          3. alert("不带参数函数");
          4. }
          5. //注意这里调用的函数不加括号
          6. setTimeout(Fun1, 2000);
      • 第三种
        • setTimeout('function()',timeout);
        • demo
          1. // 测试延迟执行的函数
          2. function Fun1() {
          3. alert("不带参数函数");
          4. }
          5. //注意这里调用的函数需要加括号
          6. setTimeout('Fun1()',2000);
    • 用法(带参数函数)

      • 第一种

        • setTimeout(function () {codes...

          }, timeout);
        • demo
          1. // 测试延迟执行的函数
          2. function Fun2(str1,str2) {
          3. alert("带参数函数"+str1+str2);
          4. }
          5. setTimeout(function(){
          6. Fun2('123','456');
          7. }, 2000);
          8. //或者下面这种写法
          9. setTimeout(() => {
          10. Fun2('123','456');
          11. }, 2000);
      • 第二种
        • setTimeout(function,timeout,param1,param2,...);
        • demo
          1. // 测试延迟执行的函数
          2. function Fun2(str1,str2) {
          3. alert("带参数函数"+str1+str2);
          4. }
          5. //注意这里调用的函数不加括号
          6. setTimeout(Fun2, 2000,'参数1内容','参数2内容');
      • 第三种
        • setTimeout('function(param1,param2,...)',timeout);
        • demo
          1. // 测试延迟执行的函数
          2. function Fun2(str1,str2) {
          3. alert("带参数函数"+str1+str2);
          4. }
          5. //注意这里调用的函数需要加括号
          6. setTimeout('Fun2("参数1内容","参数2内容")',2000);
    • 停止定时器

      • clearTimeout(timerHandle);
      • demo
        1. function Fun3(str1) {
        2. alert(str1);
        3. }
        4. //设置定时器
        5. var timer=setTimeout(Fun3,2000,"参数1");
        6. //清除指定定时器
        7. clearTimeout(timer)

延迟执行(多次)

  • setTimeout

    • 定义

      • setInterval() 方法用于在间隔指定的毫秒数后调用函数或计算表达式,重复执行。
    • 跟setTimeout()用法基本一致

    • 用法(不带参数函数)

      • 第一种

        • setInterval(function () {

          }, timeout);
        • demo
          1. // 测试延迟执行的函数
          2. function Fun1() {
          3. alert("不带参数函数");
          4. }
          5. setInterval(function(){
          6. Fun1();
          7. }, 2000);
          8. //或者下面这种写法
          9. setInterval(() => {
          10. Fun1();
          11. }, 2000);
      • 第二种
        • setTimeout(function,timeout);
        • demo
          1. // 测试延迟执行的函数
          2. function Fun1() {
          3. alert("不带参数函数");
          4. }
          5. //注意这里调用的函数不加括号
          6. setInterval(Fun1, 2000);
      • 第三种
        • setInterval('function()',timeout);
        • demo
          1. // 测试延迟执行的函数
          2. function Fun1() {
          3. alert("不带参数函数");
          4. }
          5. //注意这里调用的函数需要加括号
          6. setInterval('Fun1()',2000);
    • 用法(带参数函数)

      • 第一种

        • setInterval(function () {codes...

          }, timeout);
        • demo
          1. // 测试延迟执行的函数
          2. function Fun2(str1,str2) {
          3. alert("带参数函数"+str1+str2);
          4. }
          5. setInterval(function(){
          6. Fun2('123','456');
          7. }, 2000);
          8. //或者下面这种写法
          9. setInterval(() => {
          10. Fun2('123','456');
          11. }, 2000);
      • 第二种
        • setInterval(function,timeout,param1,param2,...);
        • demo
          1. // 测试延迟执行的函数
          2. function Fun2(str1,str2) {
          3. alert("带参数函数"+str1+str2);
          4. }
          5. //注意这里调用的函数不加括号
          6. setInterval(Fun2, 2000,'参数1内容','参数2内容');
      • 第三种
        • setInterval('function(param1,param2,...)',timeout);
        • demo
          1. // 测试延迟执行的函数
          2. function Fun2(str1,str2) {
          3. alert("带参数函数"+str1+str2);
          4. }
          5. //注意这里调用的函数需要加括号
          6. setInterval('Fun2("参数1内容","参数2内容")',2000);
    • 停止定时器

      • clearInterval(timerHandle);
      • demo
        1. function Fun3(str1) {
        2. alert(str1);
        3. }
        4. //设置定时器
        5. var timer=setInterval(Fun3,2000,"参数1");
        6. //清除指定定时器
        7. clearInterval(timer)

js中定时器使用方法经验总结的更多相关文章

  1. js中的tostring()方法

    http://blog.sina.com.cn/s/blog_85c1dc100101bxgg.html js中的tostring()方法 (2013-11-12 11:07:43) 转载▼ 标签: ...

  2. 秒味课堂Angular js笔记------Angular js中的工具方法

    Angular js中的工具方法 angular.isArray angular.isDate angular.isDefined angular.isUndefined angular.isFunc ...

  3. JS中通过call方法实现继承

    原文:JS中通过call方法实现继承 讲解都写在注释里面了,有不对的地方请拍砖,谢谢! <html xmlns="http://www.w3.org/1999/xhtml"& ...

  4. jQuery与JS中的map()方法使用

    1.jquery中的map()方法 首先看一个简单的实例: $("p").append( $("input").map(function(){ return $ ...

  5. JavaScript -- 时光流逝(二):js中数组的方法

    JavaScript -- 知识点回顾篇(二):js中数组的方法 1. 数组 (1)定义数组,数组赋值 <script type="text/javascript"> ...

  6. ASP.NET#使用母版时,如果要使用js中的getElementById()方法取得某个内容页的元素时要注意的问题

    当使用母版,要使用js中的getElementById()方法取得某个内容页的元素时,所选取的id并不是母版中内容页的id,而是在设计内容页时设定的id例子:母版页: ...... <head ...

  7. JS与OC交互,JS中调用OC方法(获取JSContext的方式)

    最近用到JS和OC原生方法调用的问题,查了许多资料都语焉不详,自己记录一下吧,如果有误欢迎联系我指出. JS中调用OC方法有三种方式: 1.通过获取JSContext的方式直接调用OC方法 2.通过继 ...

  8. JS中split使用方法和数组中元素的删除

    JS中split使用方法和数组中元素的删除 JS中split使用方法 <script language="javascript"> function spli(){ d ...

  9. JS中的splice方法

    JS中的splice方法 定义和用法 splice() 方法向/从数组中添加/删除项目,然后返回被删除的项目. 注释:该方法会改变原始数组(集合). 语法 arrayObject.splice(ind ...

随机推荐

  1. 查看postgre都有哪些语句占用CPU

    查看占用CPU最多的几个postgresql ps aux | grep postgres | sort -n -r -k 3 | head -10 | awk '{print $2, $3}' 查看 ...

  2. Android菜单(动画菜单、360波纹菜单)

     Android菜单(动画菜单.360波纹菜单) 前言:Android菜单常用集合:FragmentTabHost系统菜单.上移式菜单.360波纹菜单.展开式菜单.详解注释,可直接拿来用! 效果:   ...

  3. maven学习(七)后续扩展、资料

    写这几篇博客的来源是 "maven实战 + 网上的博客 + 平时使用的心得 ".记录的都是比较常用的东西,也有一些只做了大概了解.或者干脆直接略过,在这里做一下总结,如果有需要在进 ...

  4. 并发包Semaphore实现信号灯

    /** * * @描述: Semaphore实现信号灯 . * Semaphore可以维护当前访问自身的线程个数,并提供了同步机制,使用Semaphore可以控制同时访问资源的线程个数,例如实现一个文 ...

  5. 故障排除:无法启动、访问或连接到 Azure 虚拟机上运行的应用程序

    有多种原因可导致无法启用或连接到在 Azure 虚拟机 (VM) 上运行的应用程序.原因包括应用程序未在预期端口上运行或侦听.侦听端口受到阻止,或网络规则未将流量正确传递到应用程序.本文说明有条理地找 ...

  6. 使用UIWebView中html标签显示富文本

    使用UIWebView中html标签显示富文本 用UIWebView来渲染文本并期望达到富文本的效果开销很大哦! Work 本人此处直接加载自定义字体"新蒂小丸子体",源码不公开, ...

  7. zookeeper 的监控工具

    zookeeper 的监控工具         公司很多产品会使用zookeeper,比如Meta消息中间件,在测试的过程中,我们经常需要查询zookeeper里面的信息来精确定位问题.目前项目中有开 ...

  8. 一个典型的后台软件系统的设计复盘——(三)打通任督二脉-context

    武侠小说练功讲究打通任督二脉.程序设计练到一定程度也讲究打通任督二脉.好奇心强的同学可以搜搜“打通任督二脉有什么感觉”. spring的任督二脉ApplicationContext 最经典的任督二脉莫 ...

  9. g++: error: unrecognized command line option ‘-std=C++11’

    一个小程序,在编译的时候出错,原来使用的编译命令是 g++ -std=C++11 array.cpp -o array.exe g++: error: unrecognized command lin ...

  10. .NET控件命名规范

    一.基本数据类型前缀 数据类型    数据类型简写 Array    arr Boolean    bln Byte    byt Char    chr DateTime    dtm Decima ...