当前位置: 首页 > news >正文

Javascript的setTimeOut()和setInterval()的定时器用法

Javascript用来处理延时和定时任务的setTimeOut和setInterval函数应用非常广泛,它们都用来处理延时和定时任务,比如打开网页一段时间后弹出一个登录框,页面每隔一段时间发送异步请求获取最新数据等等。但它们的应用是有区别的。

setTimeout() 方法用于在指定的毫秒数后调用函数或计算表达式,而setInterval()则是在每隔指定的毫秒数循环调用函数或表达式,直到clearInterval把它清除。也就是说setTimeout()只执行一次,setInterval()可以执行多次。两个函数的参数也相同,第一个参数是要执行的code或句柄,第二个是延迟的毫秒数。

setTimeOut用法

setTimeout函数的用法如下:

var timeoutID = window.setTimeout(func, [delay, param1, param2, ...]);  var timeoutID = window.setTimeout(code, [delay]); 

timeoutID:定时器ID号,它可以在clearTimeout()函数中被用来清除定时器。

func:被执行的函数。

code:(替代的语法)一个被执行的代码串。

delay:延迟的时间,单位毫秒。如果没有指定,默认为0。

我们可以使用window.setTimeout或setTimeout,两个写法基本一样,只不过window.setTimeout将setTimeout函数作为全局window对象的一个属性来引用。

应用示例:

function timeout(){      document.getElementById('res').innerHTML=Math.floor(Math.random()*100 + 1);  }  setTimeout("timeout()",5000);  

代码执行时,5秒后调用timeout()函数.

 

setInterval用法

setInterval函数的参数及用法和setTimeout函数一样,请参照上文的setTimeout函数的用法介绍。不同的是,setInterval每隔一定的时间执行当中的func或code代码。

应用示例:

var tt = 10;  function timego(){
tt--; 
 document.getElementById("tt").innerHTML = tt;
 if(tt==0){window.location.href='/';return false; } } var timer = window.setInterval("timego()",1000); 

函数timego()定义了页面元素#tt显示的内容,当tt等于0时,页面定向到首页。然后我们定义一个定时器timer,使用setInterval()每隔1秒调用一次timego()。这样timego会执行10次,每次数字tt会减1,直到为0。那么如果想停止定时器,可以使用以下代码:

window.clearInterval(timer);  

代码执行时,10秒后页面跳转到首页。

转载于:https://www.cnblogs.com/ZDPPU/p/6020171.html

相关文章:

  • rsync实现同步
  • C++中static的作用和使用方法
  • 关于Html编码问题,例如字符:#183;
  • 机器学习之寻找合适的学习方法
  • 【文智背后的奥秘】系列篇——基于CRF的人名识别
  • 【转】Maven实战(九)---模块聚合和继承
  • TCP系列47—拥塞控制—10、FACK下的快速恢复与PRR
  • webpack常用加载器和插件
  • Android Studio-导入External Libraries
  • Win7 + VS2015 + CMake3.6.1-GUI + Makefile 编译开源库
  • [工具]利用EasyRTSPClient工具检查摄像机RTSP流不能播放原因以及排查音视频数据无法播放问题...
  • web前端:css基本操作
  • DUILIB圆形头象
  • #include
  • The content of element type configuration must match (properties?,settings?,typeAliases?,typeHa...
  • Computed property XXX was assigned to but it has no setter
  • CSS魔法堂:Absolute Positioning就这个样
  • Docker 1.12实践:Docker Service、Stack与分布式应用捆绑包
  • MySQL用户中的%到底包不包括localhost?
  • Python 使用 Tornado 框架实现 WebHook 自动部署 Git 项目
  • Sass 快速入门教程
  • vue-cli在webpack的配置文件探究
  • vue中实现单选
  • 对超线程几个不同角度的解释
  • 翻译:Hystrix - How To Use
  • 基于Mobx的多页面小程序的全局共享状态管理实践
  • 模仿 Go Sort 排序接口实现的自定义排序
  • 排序(1):冒泡排序
  • 深入体验bash on windows,在windows上搭建原生的linux开发环境,酷!
  • 手机端车牌号码键盘的vue组件
  • 回归生活:清理微信公众号
  • 基于django的视频点播网站开发-step3-注册登录功能 ...
  • 移动端高清、多屏适配方案
  • ​【原创】基于SSM的酒店预约管理系统(酒店管理系统毕业设计)
  • ​Spring Boot 分片上传文件
  • ​水经微图Web1.5.0版即将上线
  • #我与Java虚拟机的故事#连载10: 如何在阿里、腾讯、百度、及字节跳动等公司面试中脱颖而出...
  • $jQuery 重写Alert样式方法
  • (51单片机)第五章-A/D和D/A工作原理-A/D
  • (C语言)共用体union的用法举例
  • (附源码)springboot宠物医疗服务网站 毕业设计688413
  • (七)Java对象在Hibernate持久化层的状态
  • (三分钟)速览传统边缘检测算子
  • (十三)Flask之特殊装饰器详解
  • (幽默漫画)有个程序员老公,是怎样的体验?
  • (原創) 如何刪除Windows Live Writer留在本機的文章? (Web) (Windows Live Writer)
  • (转)jdk与jre的区别
  • (转载)Google Chrome调试JS
  • (转载)虚函数剖析
  • * CIL library *(* CIL module *) : error LNK2005: _DllMain@12 already defined in mfcs120u.lib(dllmodu
  • .Mobi域名介绍
  • .net 8 发布了,试下微软最近强推的MAUI
  • .net core 6 redis操作类
  • .Net core 6.0 升8.0
  • .Net中的集合