当前位置:首页 > 技术分析 > 正文内容

JS定时器详解及实例_js定时器的两种方法

ruisui884个月前 (02-20)技术分析16

#头条创作挑战赛#

在前端,我们有很多功能需要用到定时器。譬如轮询,譬如定时关闭弹框,譬如实现秒表,譬如一段时间后跳转页面等等。因此,本文为针对JavaScript定时器进行详解及对应的应用实例。

JavaScript定时器分类:

1. 循环执行:让一段程序能够每隔设定的一段时间内执行一次,常用于轮询。

语法:setInterval(要执行的方法,时间单位 (毫秒))

例如:setInterval(() =>{

console.log('这里是setInterval计时器')

},3000)

即:每隔3秒将在控制台里打印“这里是setInterval计时器”·

2. 倒计时定时执行(即一次性定时器,触发后只执行1次)setTimeout:让某段程序需要在延迟多少时间后执行。

语法:setTimeout(要执行的方法,时间单位 (毫秒))

例如:setTimeout(function (){

console.log(' setTimeout计时器')

},5000);

即:5秒后将在控制台里打印“setTimeout计时器”。

需要注意的是:

由于定时器所有任务都是由同一个线程来调度,定时器简单易用。同时这也导致了定时器所有任务都是串行执行的,同一时间只能有一个任务在执行,前一个任务的延迟或异常都将会影响到之后的任务,即定时器会重叠。而且定时器不会被自动销毁,即它所占内存无法被自动回收。如果不手动清除定时器,它会一直占用内存资源。更可怕的是,一旦使用定时器进行轮询,定时器所占的内存资源将会不断上升,若与定时器重叠问题一起出现,常导致页面卡顿。为了防止此问题的出现,在使用定时器后需要先清除定时器再进行设置,保证内存中只存在一个定时器。因此在清除定时器时,我们常在设置定时器时,定义一个变量来记录定时器返回的定时器序号,然后在定时器完成后,调用该序号清除对应定时器。

清除定时器:clearInterval()

例如:

var addnum = 0

//每隔10秒addnum会累加1次,定义变量accumulation装计时器的东西

function myinterval() {

accumulation= setInterval(() => {

addnum++

}, 10000);

}

//清除时在clearInterval()这个括号里写这个变量:accumulation就可以清除掉了。

function mystopinterval() {

clearInterval(accumulation)

}

实例:

JS定时器间隔20秒调用一次Ajax。

Sendajax =setInterval(function(){

$.ajax({

url: url,

method: 'POST',

dataType: 'json',

success: function(data) {

console.log("AJAX call");

}

});

}, 20000);

clearInterval(Sendajax)

扫描二维码推送至手机访问。

版权声明:本文由ruisui88发布,如需转载请注明出处。

本文链接:http://www.ruisui88.com/post/2121.html

标签: 清除定时器
分享给朋友:

“JS定时器详解及实例_js定时器的两种方法” 的相关文章

Lindroid开源应用:在安卓手机 / 平板上安装 Linux发行版

IT之家 6 月 19 日消息,Erfan Abdi 本月发布了 Lindroid 开源应用程序,让用户可以在安卓手机上安装 GNU / Linux 发行版,在完全支持手机硬件的情况下可以运行 Linux 应用程序。Lindroid 开源应用程序就是将 Linux 放入容器中,使用 Halium 等...

深入理解Vue.js组件通信:父子组件与子父组件数据交互详解

什么是Vue组件通讯 Vue.js 组件通信是指在 Vue 应用的不同组件之间进行数据交换和状态同步的过程。由于 Vue 的组件是基于单文件组件(SFCs)的模块化设计,每个组件都有自己的作用域,因此它们不能直接访问彼此的数据。为了使组件之间能够协同工作,Vue 提供了几种不同的通信方式。以下是 V...

使用cgroup限制进程资源

这里使用containerd项目中的cgroup包来实现进程资源限制。先写一个耗费一个CPU并且一秒增加10m内存的测试进程package mainimport ( "fmt" "math/rand" "time")func main() { go f...

博信股份新战略后再推新品 TOPPERS E2耳机售价199元

中新网6月21日电 20日,博信股份在北京正式推出新品TOPPERS主动降噪耳机E2,这是博信股份继2月战略暨新品发布会后的第二次新品亮相。价格方面,TOPPERS主动降噪耳机E2零售价199元,并于6月20日下午4点在京东商城公开销售。据介绍,TOPPERS主动降噪耳机E2采用AMS(奥地利微电子...

全新斯柯达柯珞克Karoq深度评测:大众替代品

“斯柯达柯珞克是一款出色的全能家庭 SUV,具有许多有用的功能”价格36,605 英镑- 49,190 英镑优点方便的 VarioFlex 后排座椅非常适合家庭入住驾驶乐趣缺点保修期短保守的内饰性格比Yeti少结论——斯柯达柯珞克是一辆好车吗?斯柯达柯珞克是在辉煌的七座 斯柯达柯迪亚克之后推出的,因...

vue开发微信小程序 - 登录组件

移动端登录功能抽象为通用组件,满足:不同移动端应用中一键登录功能复用支持多种登录:微信登录、H5、QQ登录登录组件使用//引用登录组件 import login from "../components/user/login.vue" export default { compone...