定时器js

【JavaScript BOM】定时器、location对象、navigator对象、JS执行机制 BOM1.BOM概述2.window对象常见事件窗口加载事件1窗口加载事件2两者区别调整窗口大小事件3.定时器setTimeout()案例:五秒后自动关闭广告停止setTimeout()定时器setInterval()案例:倒计时停止setInterval()定时器案例:发送短信this指向4.JS执行机制JS单线程同步和异步5.location对象5.1 URL5.2 location对象的属性案例:5秒后跳转页面案例:获取URL参数5.3 location对象的方法6.navigator对象 1.BOM 阅读详情

定时器

一、两种定时器

setTimeout() 延迟定时器

setInterval() 循环定时器(‘间隔器’)

定时器中的函数挂载在window对象上,内部的this指向window

 setTimeout(function(){
            console.log(111);
        },1000)  //一秒钟打印出111

  setInterval(function(){
            console.log(111);
        },1000)  //每隔一秒钟打印出111

二、清除定时器

每次使用定时器时,必须清除定时器

如何清除定时器呢,每一个定时器开启后,都会返回一个对应的id,通过这个id就可以清除定时器

clearTimeout(timer) ====> 用于清除setTimeout

clearInterval(timer) ====> 用于清除setInterval

//在开启定时器的同时定义一个变量接受定时器返回的id,用于清除定时器
        var timer=setTimeout(function(){
            console.log(111);
        },1000)
        clearTimeout(timer);

        var timer2=setInterval(function(){
            console.log(111);
            clearInterval(timer2);
        },1000)

三、关于定时器函数的参数

定时器可以接受多个参数

1、第一个参数是执行的函数,必须传递,不传没什么意义,会报错

2、第二个参数为定时器执行的毫秒数,可以不传

3、第三个之后的所有参数,都将是第一个参数函数执行的实参

//没有第二个参数会立即执行
        setTimeout(function(){
            console.log(111);
        })

        setTimeout(function(a,b){
            console.log(a,b);
        },1000,10,20)

HTML5标准规定了setTimeout()的第二个参数的最小值(最短间隔),不得低于4毫秒,如果低于这个值,就会自动增加,在此之前,老版本的浏览器都将最短间隔设为10毫秒,不同的浏览器实现不同

四、关于定时器的第一个参数

4.1、匿名函数

 setTimeout(function(){
            console.log(111);
        },1000)

4.2、有名函数

  setTimeout(function haha(){
            console.log(111);
        },1000)

4.3、有名函数的函数名

 function haha(){
            console.log(111);
        }
        setTimeout(haha,1000)

4.4、能被当成js语句执行的字符串

setTimeout('console.log(111)',1000)

五、JS的单线程

5.1、单线程的理解

同时只能执行一个任务,如果后面有任务,需要等到当前任务执行完毕,才能执行后面的任务

for(var i=0;i<10;i++){
            console.log(1);
        }
        console.log(2);

js的单线程就是说上面的代码,无论for循环多么耗时,都必须先执行完,再打印2,这就会造成线程阻塞的问题

5.2、线程阻塞

前面的任务死循环或者耗时过长导致后面代码不能被执行,这种情况叫做线程阻塞。

这样会出现问题,所以对于像事件,定时器,ajax请求这种非常耗时的程序,浏览器会开辟其他的线程来处理,所以这些程序我们叫做异步程序

浏览器有三个常驻线程,JS引擎线程,界面的渲染线程,已经浏览器事件触发线程,还有一些执行完就终止的线程,比如HTTP请求线程

for(var i = 0; i< 5; i++){
    setTimeout(function(){
        console.log(i)
    },1000)
}   //5 

5.3、同步任务和异步任务

js的单线程意味着所有的任务需要排队,前一个任务结束,才会执行后一个任务,如果前一个任务耗时很长,后一个任务就不得不一直等着

所以JS的任务队列分为两种,同步任务和异步任务

1、同步任务:在JS主线程排队执行的任务 ===>形成执行栈

2、异步任务:不进入主线程进入‘任务队列’的任务 ===> 形成任务队列

异步任务只有任务队列通知主线程,某个异步任务可以执行了,该任务才会进入主线程执行

  setTimeout(function(){
            console.log(1)
        },0)
        for(var i = 0; i< 10;i++){
            console.log(2)
        } //定时器会等待for循环执行完毕后再执行

当js遇到定时器,它会认为你特别耗时间,不管你写的时间间隔是多久,都会将匿名函数放到callback queue回调队列中,等待主线程的调用,当主线程的stack所有的任务都执行完了,再通过event loop(时间循环)把匿名函数放到stack主线程中运行

5.4、JS代码的执行顺序

先执行主程序的任务,当主程序的所有任务都执行结束,再把任务队列中的任务放到主程序中执行

1、所有的同步任务都在主线程上执行,形成一个执行栈

2、主线程之外,还存在一个‘任务队列’,只要异步任务有了运行结果,就在‘任务队列’之中放置一个事件

3、一旦‘执行栈’中的所有同步任务执行完毕,系统就会读取‘任务队列’,看看里面有哪些事件,那些对应的异步任务,于是结束等待状态,进入执行栈,开始执行

4、主线程不断重复上面的第三步

从零到英雄:Spring Boot 微服务架构全攻略 在数字化转型的时代,微服务架构已成为构建可扩展、高可用系统的首选方案。本文以“从零到英雄”为主题,详细指导读者使用Spring Boot快速构建微服务帝国。从基础环境搭建入手,逐步深入到服务发现、配置管理、负载均衡、断路器、API网关、安全认证、监控与部署等核心模块。通过大量代码示例和详细解释,包括中文注释,帮助初学者和中级开发者掌握Spring Boot的核心概念和技术实践。文章强调实际操作,涵盖RESTful API开发、数据库集成、容器化部署等内容,并讨论常见问题与优化策略。无论你是Java开发者还是 阅读详情

相关推荐

泛微OA表单设计实战:如何快速实现自定义多选浏览框(附完整配置步骤)

本文详细介绍了在泛微OA中快速实现自定义多选浏览框的完整配置步骤。针对招聘提报、活动审批等需要从海量数据中规范选择多个条目的业务场景,文章从理解需求、构建数据源、设计查询页面到创建浏览框控件,提供了清晰的实战指南,帮助开发者高效解决复杂数据选择难题,提升表单操作体验。

yog99的博客 1049

Js 中的定时器

定时器

weixin_41806264的博客 2万+

提升仿真效率:Synopsys VCS高级编译选项优化技巧(2023最新版)

本文深入探讨了Synopsys VCS 2023版本中的高级编译选项优化技巧,帮助工程师提升仿真效率。通过并行编译、智能代码分析、精准覆盖率采样等策略,结合真实案例展示如何显著缩短仿真周期并优化资源使用,适用于数字芯片验证和大型SoC设计。

weixin_30338481的博客 113

JavaScript定时器

setInterval() :是属于 window 的方法,按照指定的周期(以毫秒计)来调用函数或计算表达式。setInterval() :按照指定的周期(以毫秒计)来调用函数或计算表达式。其中 回调函数 "clock()" 可以写在 双引号中,也可以写在单引号中。setInterval() 和 setTimeout() 是 HTML DOM Window对象的两个方法。clearInterval() 方法 的参数 必须是由 setInterval() 返回的 ID 值。(这个内容 描红显示)

weixin_52629158的博客 1万+

RP Fiber Power 版本

RP Fiber Power的版本历史 该软件一直受到多年来广泛的发展计划,这大大扩展了其功能,以及用户界面的质量。 V1 这是第1个版本。 它仅限于光纤激光器和放大器的连续波计算,并且只能通过脚本进行控制。 V2 版本2引入了交互式表单。 至少对于更简单的模拟,现在可以简单地通过填写表单来工作,而V1必须通过脚本来控制。 例如,屏幕截图显示了输入某些信号参数的表单: 当您基于这些表单执行计算时,程序将根据您的表单输入自动编写脚本文件,然后执行该脚本。如果您需要编写脚本以获得更大的灵活性,可以稍后查看该脚

Asdmath的博客 2431

RK3588&RK3576实现 HW-ID DTB(动态加载不同的Kernel DTB)功能

RK平台的U-Boot⽀持检测硬件上的GPIO或者ADC状态动态加载不同的Kernel DTB,暂称为HW-ID DTB(Hardware id DTB)功能。

Wynter 849

js 定时器

JavaScript 中的定时器(Timer)是一种机制,用于在指定的时间间隔之后执行代码或者在指定的时间点执行代码。通过使用定时器函数,可以实现各种延迟执行或周期性执行的需求,例如执行动画、定时更新数据等。是执行的时间间隔,以毫秒为单位。指定的代码会在每个时间间隔结束时执行。在延迟时间到达后,指定的代码会被执行。第一个参数是一个函数,表示要执行的代码。第一个参数是一个函数,表示要执行的代码。函数用于在指定的时间间隔内反复执行一段代码。函数用于在指定的时间延迟后执行一次代码。

qq_41045651的博客 3713

淘宝母婴用品数据挖掘及可视化分析研究

1. 背景介绍 在当今的电子商务时代,母婴用品市场已经成为了各大电商平台的一片蓝海。淘宝作为中国最大的电子商务平台,其上的母婴用品交易数据自然引人关注。理解这些数据,可以帮助商家更好地制定营销策略,也可以帮助消费者更好地选择产品。因此,本文将对淘宝母婴用品的数据进行深入的挖掘和分析。 1.1 电子商务的

AI天才研究院 1257

计数器函数-注册倒计时

1.注册按钮倒计时 <!DOCTYPE html> <html lang="zh-CN"> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> &

qq_45579661的博客 628

大数据分析案例-基于随机森林模型对北京房价进行预测

自1998年我国取消了福利分房的政策后,房地产市场迅速开展蓬勃起来。同时,随着社会经济的快速开展,居民的经济条件越来越好,住房条件也在不断地提升。而住房是人民根本生活的保障,也是-一个家庭最重要的资产,从一定的层面.上反映了一个家庭整体的生活水王,多方面的因素使得房地产行业在短时间开展成为我国的支柱产业之一;成为了切实关乎人民生活和利益的重要产业。然而,随着房地产行业的开展,问题也慢慢突显出来,房价一直居高不下成为了一个大问题。 作为国家的支柱产业,房地产的稳定发展关乎国计民生。近几年,房

m0_64336780的博客 8827

MFC 中实现 WebSocket 客户端以支持实时双向通信

3. **协议兼容**:若服务器使用 `wss://`(加密),需在 `lws_client_connect_info` 中配置 SSL 相关参数(`ssl_connection = LCCSCF_USE_SSL`)。- 编辑框(`m_editUrl`):输入 WebSocket 服务器地址(如 `ws://echo.websocket.events`)。2. 将编译后的库文件(`.lib`、`.dll`)和头文件路径添加到 MFC 项目中(项目属性 -> VC++ 目录)。// UI:服务器地址。

寒寒豆豆软件公司的博客 202

js 定时器_[译]JavaScript定时器:你需要知道的每个知识点

JavaScript定时器:你需要知道的每个点原文链接: medium.com几周前我在推特上发布了这样一个面试问题: JavaScript面试问题: 在哪里可以找到setTimeout和setInterval的源代码?(他们在哪里实现的?) 你怎么在面试中回答?(你不能去网上搜索)function setTimeOut(callback  继续往下看之前先试着回答这个问题 推特上半数的回答都是...

weixin_39530960的博客 429

【YOLO11改进 - 注意力机制】SCSA通过结合空间注意力和通道注意力,提高各种下游视觉任务的性能。

【YOLO11改进 - 注意力机制】SCSA通过结合空间注意力和通道注意力,提高各种下游视觉任务的性能。

专注于图像领域,主要研究内容包括计算机视觉和深度学习,特别是在图像分类、目标检测和图像生成等方面有深入的研究和实践经验。 475

javascript定时器,取消定时器,及js定时器优化方法

--------------------------------------------------------------》1 1,只执行一次的定时器   //定时器 异步运行  function hello(){  alert("hello");  }  //使用方法名字执行方法  var t1 = window.setTimeout(hello,1000);  var t2

AinUser的博客 4594

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

js 定时器_JavaScript如何使用setTimeout()设置定时器

科技i关注 2019-11-04 13:19:12在JavaScript中,通过给setTimeout()方法设置需要调用的函数或要执行的代码串参数,和延迟的时间参数;在调用setTimeout()方法就可以设置一个简单的定时器。在JS中,提供了一些原生方法来实现在设定的时间间隔之后去执行某一段代码;setTimeout()方法设置的是一次性定时器,是仅在指定的延迟时间之后触发一次。下面我们就来看...

weixin_39928003的博客 378

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

JS定时器

<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title></title> </head> <body> <script> // console.log("嘿嘿嘿嘿嘿");//在浏览器控制台输出 // w...

Java技术 432

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

08-JavaScript BOM定时器及JS动画

超时调用需要使用window对象的setTimeout()方法,该方法接受两个参数:调用函数或计算表达式和以毫秒为单位的时间(即在执行代码前需要等待多少毫秒)。

weixin_55702682的博客 725

js定时器

同时只能执行一个任务,如果后面有任务,需要等到当前任务执行完毕,才能执行后面的任务i< 10000;i++){js的是单线程的也就是说上面的代码,无论for循环多么耗时,都必须先执行完,在打印2,这就会造成线程阻塞的问题。

架构师小吴的博客 1001

【JavaScript基础】Js的定时器(你想看的原理也在哟)

JS定时器 一次性定时器 使一段代码在指定时间后运行 window.setTimeout(函数名,时间); 重复性定时器 可以使一段代码每过指定时间就运行一次 window.setInterval(函数名,时间); 消除定时器 定时器清除的方法:clearTimeout(obj)和clearInterval(obj)。 要清除定时器,就必须在用定时器的时候,定义一个变量来记录定时器的返回值 使用和...

归子莫的博客 539

js 多个定时器_Javascript 异步编程(三)定时器

并行?并发?异步?同步:synchronous: 指所有任务按出现的先后顺序依次执行 如果出现阻塞的任务,那么线程就会等待这个任务完成,接着执行下一个任务。异步:asynchronous:不保证所有任务按出现的顺序执行并发:concurrent:从宏观上,某个时间段里面多个程序都得到了运行,但不是说“同时运行”并行:parallel:在多核心下,因进程和线程独立运行,且多个线程之间共享数据,程序可...

weixin_39991926的博客 1935

JavaScript之定时器

定时器一、 setTimeout() 定时器 在很多页面中,我们都可以看到一些倒计时或者和时间相关的效果,今天小熊将就JavaScript里面的倒计时做一概述。 首先,我们先来看看定时器,在JS中,有两种定时器: 一、 setTimeout() 定时器 语法: window.setTimeout(调用函数, [延迟的毫秒数]); setTimeout()方法用于设置一个定时器,该定时器在定时器到期后执行调用函数。 例如:写一个页面,让其五秒钟后弹出‘你好’。 代码如下: window.setTimeout

m0_48375854的博客 8554
上一篇: generator
下一篇: async函数
*初级小白*~
博客等级 码龄7年 24粉丝 108原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值