JavaScript 里面有两个定时器:setTimeout() 和 setInterval() 。

  区别

    setTimeout():相当于一个定时炸弹,隔一段时间执行,并且只会执行一次就不在执行了。

    setInterval(): 相当于一个闹钟,隔一段时间执行,并且会重复执行。

一、setTimeout()

  1、设置定时器(倒计时)

    语法格式

setTimeout(function() {},时间);

        这个函数需要两个参数:

      第一个参数是到时间后需要执行的函数,可以是匿名函数,也可以是命名函数;

      第二个参数是时间间隔,单位为毫秒(ms)。

    Demo:

 btn.onclick = function() {
setTimeout(function(){
alert("hello world");
},3000);
}

    当点击按钮3秒后,页面弹出 “hello world” 的对话框。

  2、取消定时器(倒计时)

    语法格式

var  timerId = setTimeout(function(){}, 时间间隔);
clearTimeout(timerId);

    声明定时器时会有一个返回值,是一个整数,即当前这个定时器的 标识

     在执行 clearTimeout() 这个函数时,在里面传入对应的 定时器的标识 即可取消当前的定时器。

二、setInterval()

  1、设置定时器

    语法格式

setInterval(function(){},时间间隔);

     这个函数需要两个参数:

      第一个参数是到时间后需要执行的函数,可以是匿名函数,也可以是命名函数;

      第二个参数是时间间隔,单位为毫秒(ms)。

  2、取消定时器

     语法格式

var  timerId = setInterval(function(){}, 时间间隔);
clearInterval(timerId);

      声明定时器时会有一个返回值,是一个整数,即当前这个定时器的 标识

     在执行 clearTimeout() 这个函数时,在里面传入对应的 定时器的标识 即可取消当前的定时器。

    Demo:距离2019年11月11日倒计时

  // 结构
<h1 class="title">距离光棍节,还有</h1> <div class="time-item">
<span><span id="day">00</span>天</span>
<strong><span id="hour">00</span>时</strong>
<strong><span id="minute">00</span>分</strong>
<strong><span id="second">00</span>秒</strong>
</div> <script>
// 目标时间
var endDate = new Date('2019-11-11 0:0:0');
// 获取 span
var spanDay = document.getElementById('day');
var spanHour = document.getElementById('hour');
var spanMinute = document.getElementById('minute');
var spanSecond = document.getElementById('second'); countdown();
setInterval(countdown, 1000); // 倒计时
function countdown() { // 计算时间差
// 当前时间
var startDate = new Date();
// 计算两个日期差
var interval = getInterval(startDate, endDate); setInnerText(spanDay, interval.day);
setInnerText(spanHour, interval.hour);
setInnerText(spanMinute, interval.minute);
setInnerText(spanSecond, interval.second); } // 获取两个日期的时间差
function getInterval(start, end) {
// 两个日期对象,相差的毫秒数
var interval = end - start;
// 求 相差的天数/小时数/分钟数/秒数
var day, hour, minute, second; // 两个日期对象,相差的秒数
// interval = interval / 1000;
interval /= 1000; day = Math.round(interval / 60 / 60 / 24);
hour = Math.round(interval / 60 / 60 % 24);
minute = Math.round(interval / 60 % 60);
second = Math.round(interval % 60); return {
day: day,
hour: hour,
minute: minute,
second: second
}
} </script>

  

JavaScript 之 定时器的更多相关文章

  1. JavaScript中定时器的暂停和继续

    对于JavaScript的定时器来说没有严格意义上的暂停和重启,只有清除停止,但是可以通过一些‘障眼法’实现 allChild[index].onclick = function(){//当点击目标且 ...

  2. day27—JavaScript实现定时器及其应用案例

    转行学开发,代码100天——2018-04-12 JavaScript中定时器有两种,分别是setInterval和setTimeout;其用法如下: 开启: setTimeout("fun ...

  3. Javascript中定时器的使用方法

    Javascript中定时器的使用方法 1.间隔定时器(每隔一段时间执行一次代码) 格式:setInterval(函数,时间) //时间单位是毫秒,每隔设置的时间执行函数里的内容一遍(一直执行) // ...

  4. JavaScript中定时器

    JavaScript提供定时执行代码的功能,叫做定时器(timer),主要由setTimeout()和setInterval()这两个函数来完成.它们向任务队列添加定时任务. setTimeout() ...

  5. 理解JavaScript的定时器与回调机制

    定时器方法 JavaScript是单线程的.虽然HTML5已经开始支持异步js了. JavaScript的setTimeout与setInterval看起来就像已经是多线程的了.但实际上setTime ...

  6. JavaScript基础 -- 定时器

     js 定时器有以下两个方法: setInterval() :按照指定的周期(以毫秒计)来调用函数或计算表达式.方法会不停地调用函数,直到 clearInterval() 被调用或窗口被关闭. set ...

  7. JavaScript的定时器是如何工作的

    理解JavaScript定时器工作原理对于学习JavaScript非常重要.因为JavaScript是单线程运行的,定时器使用场合少,不是很直观.下面通过三个函数来学习JavaScript如何定义,操 ...

  8. JavaScript clearInterval定时器失效原因

    检查下是不是setInterval重复执行(两次以上<!-- 文件上传板块 --> <div id="adUploadWindow" class="ea ...

  9. 【javascript】定时器组件

    'use strict'; module.exports = function() { this.timer = {}; this.config = {}; // 初始化参数 this.init = ...

随机推荐

  1. 【洛谷P3835】 【模板】可持久化平衡树

    可持久化非旋转treap,真的是又好写又好调 ~ code: #include <cstdio> #include <cstdlib> #include <algorit ...

  2. 掌握Visual Studio断点

    我知道你现在在想什么.断点?真的吗?关于断点有什么需要掌握的?你按F9然后停在代码行.如果你是这么想的,这篇文章是给你的:继续读 Visual Studio提供了一组相当丰富的断点类型和操作,可以使您 ...

  3. C++标准库中的std::endl究竟做了什么?

    先抓出std::endl的源代码: /** *  @file  ostream *  @brief  Write a newline and flush the stream. * *  This m ...

  4. RE:SB的SDOISB记

    Day0 到了农大 进门看见hly 和myj一起乱%一通 一本爷的气场就是强大 晚上gryz搬砖三人组出去吃饭,开心>_< 吃完饭后去试机 手速比较快,写了一下ntt,lct,sa和一些小 ...

  5. Linux中fork()函数详解(转载)

    linux中fork()函数详解 一.fork入门知识 一个进程,包括代码.数据和分配给进程的资源.fork()函数通过系统调用创建一个与原来进程几乎完全相同的进程,也就是两个进程可以做完全相同的事, ...

  6. nginx虚拟机配置

    #虚拟主机的配置server {#监听端口listen 80;#服务器域名server_name localhost;#网页的默认编码#charset koi8r;#访问该虚拟主机的日志位置#acce ...

  7. 基于AOP的插件化(扩展)方案

    在项目迭代开发中经常会遇到对已有功能的改造需求,尽管我们可能已经预留了扩展点,并且尝试通过接口或扩展类完成此类任务.可是,仍然有很多难以预料的场景无法通过上述方式解决.修改原有代码当然能够做到,但是这 ...

  8. Oracle_12541错误和ora-12514错误

    ORA-12541: TNS无监听程序错误 在oracle安装目录(E:\app\Administrator\product\instantclient_12_1\NETWORK\ADMIN)下查找l ...

  9. python 判断矩阵中每行非零个数的方法

    python 判断矩阵中每行非零个数的方法: # -*- coding: utf-8 -*- # @Time : 2018/5/17 15:05 # @Author : Sizer # @Site : ...

  10. 关于liveness服务依赖用法整理

    一.生产环境中部分服务的使用场景有前置条件 使用initContainers,做一些前置服务的检测动作,以确定前置服务已正常运行且能对外提供服务(若检测未通过则本pod无法启动) 使用liveness ...