首页 > 编程语言 >定时器(JavaScript)的使用

定时器(JavaScript)的使用

时间:2023-06-02 19:32:07浏览次数:45  
标签:index 定时器 异步 setInterval JavaScript 线程 使用 var

前言


通过定时器自动的做一些事情,例如发送网络请求

一、定时器

定时器:定时器可以设定时间自动的做某件事情。定时器是一种方法,不是对象,定时器属于 window 对象。

二、定时器具体内容

  1. 周期性定时器:间隔一定的时间,自动的做某件事情 setInterval(函数名,间隔时间)
  2. 一次性定时器:延迟多长时间做某件事情一次 setTimeout(函数名,间隔时间)
  3. 上面这两个设置定时器的方法会返回一个线程号,这个线程号可以用来清除定时器,脚本中包含多个定时器,这个线程号就可以用来标记清除哪一个 var index = console.log(setInterval(函数名,间隔时间))
  4. 清除定时器的方法 clearInterval(线程号) clearTimeout(线程号)
  5. 定时器最好设置在全局作用域中,因为设置在局部作用域中的话,只能在设置定时器的那个函数中去暂停定时器,但是实际工作中,暂停定时器和设置定时器时在不同的函数中进行的,所以定时器的变量要设置成全局变量,方便使用。
  6. 定时器是我们第一个遇到的异步的方法
  7. 之前的所有方法都是同步的,同步的方法在 js 中执行的顺序上是写在前面的代码就会先执行,不管前面的语句需要多久的时间来执行完毕,前面的语句执行完成之后,后面的代码才会执行。
  8. 同步和异步的语句同时存在的时候,同步的一定先于异步的执行完毕。就算异步的代码的间隔时间设置为 0,并且异步的代码写在了同步的代码之前。同步的代码也会先于异步的代码执行完毕。

三、定时器实例

基本的语法

const intervalID = setInterval(myCallback,1000);  // setInterval() 的返回值为一个线程号,这个线程号可以用在清除定时器的函数中 clearInterval(线程号)
function myCallback(a,b){
    var a = "jason";
    var b = "song";
    console.log(a);
    console.log(b);
} 

通过点击开始按钮就开始显示时间,通过点击结束按钮就结束显示时间

var start = document.getElementById("start");
var stop = document.getElementById("stop");
var index;
function begin(){
    index = setInterval(go,1000);    // setInterval() 函数返回线程号  //通过在外面声明的全局变量 index 使得其他地方可以使用这个线程号
}
// console.log(index);
function go(){
    var date = new Date();
    console.log(date);
}
start.onclick = begin;
stop.onclick=function(){
    clearInterval(index);
}





标签:index,定时器,异步,setInterval,JavaScript,线程,使用,var
From: https://blog.51cto.com/u_15997490/6404598

相关文章

  • 多环境简单使用,简单记录
    //------------多环境获取数组下面的值"DBS":[{"ConnId":"MYSQL1","Connection":"server=112.11.33.55\\ms2012;uid=sa;pwd=123;database=databaseqq;"},{"ConnId":"......
  • MAC/Razor页面应用如何使用微信认证
    @@openiddict微信二维码登入 ags:篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MAC/Razor页面应用如何使用微信认证相关的知识,希望对你有一定的参考价值。本文章演示了如何将微信集成到ABP应用程序中,使用户能够使用OAuth2.0凭据登录。创建一个沙箱账......
  • Vue——前端发展史、Vue介绍和使用、插值语法、文本指令、事件指令
    前端的发展史#1HTML(5)、CSS(3)、JavaScript(ES5、ES6):编写一个个的页面->给后端(PHP、Python、Go、Java)->后端嵌入模板语法->后端渲染完数据->返回数据给前端->在浏览器中查看 javascript=ECMAScript(5,6,13)+Dom+Bom#2Ajax的出现->后台发送异步请求,Ren......
  • 广播系统的使用
    首先是创建一个脚本改脚本为 枚举类型  该脚本:然后创建我们的主要脚本   该脚本首先 他不继承我们的那个 MonoBehaviour  然后创建一个字典 里面的值就是我们的枚举类型和一个委托类型就是我们第三个脚本 因为unity他只封装到第4个所以我们用我们......
  • 云原生之使用Docker部署Ghost个人博客
    (云原生之使用Docker部署Ghost个人博客)一、检查本地系统版本[root@docker~]#cat/etc/os-releaseNAME="CentOSLinux"VERSION="7(Core)"ID="centos"ID_LIKE="rhelfedora"VERSION_ID="7"PRETTY_NAME="CentOSLinux7(Core)&qu......
  • lucene底层数据结构——FST,针对field使用列存储,delta encode压缩doc ids数组,LZ4压缩算
    参考:http://www.slideshare.net/lucenerevolution/what-is-inaluceneagrandfinalhttp://www.slideshare.net/jpountz/how-does-lucene-store-your-data摘录一些重要的:看一下Lucene的倒排索引是怎么构成的。我们来看一个实际的例子,假设有如下的数据: docid年龄性别118女220女318男 ......
  • 不使用第三方框架编写的多线程断线续传功能
    一、背景最近需要个断线续传功能,但是觉得一些框架不太适合,所以基于原理编写了一个多线程断线续传功能支持技术分享,但是复制和转发我的博客时候请标明出处,谢谢 javascript:void(0)二、断线续传的个人理解:1、断线续传在个人理解,其实就是在出现正常下载流程之外的事情的时候,保存好当......
  • 使用Python爬虫爬取网络美女图片
    准备工作安装python3.6略安装requests库(用于请求静态页面)pipinstallrequests-ihttps://mirrors.ustc.edu.cn/pypi/web/simple安装lxml库(用于解析html文件)pipinstalllxml-ihttps://mirrors.ustc.edu.cn/pypi/web/simple安装与配置selenium(用于请求动态页面)pipinstall......
  • EasyCVR使用SDK接入,设备全部离线,但是SDK DEMO接入正常是什么原因?
    EasyCVR视频融合平台基于云边端一体化架构,具有强大的数据接入、处理及分发能力,平台支持多协议、多类型的设备接入,包括主流标准协议国标GB28181、RTSP/Onvif、RTMP等,以及厂家私有协议与SDK接入,包括海康Ehome、海大宇等设备的SDK等。有用户反馈,EasyCVR平台中,使用SDK接入的设备显示......
  • 让弹窗更易于使用~
    标题又名:简单弹窗、多弹窗、复杂弹窗怎么做代码和状态的解耦。关键字:react/modal问题实际业务中,不乏弹窗组件中包含大量复杂的业务逻辑。如:functionOrder(){//省略上百行方法状态  const[visible,setVisible]=useState(false)  constwithModalState=......