定时器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、主线程不断重复上面的第三步

3个国产AI大模型实战:如何用DeepSeek+豆包+千问批量生成高质量测试用例(附完整代码) 本文详细介绍了如何利用DeepSeek、豆包和千问三大国产AI大模型批量生成高质量测试用例的实战方法。通过Python环境配置、多模型SDK安装和统一接口封装,实现高效测试用例生成,并结合结构化提示词设计和多模型结果对比分析,显著提升测试效率和覆盖率。 阅读详情

相关推荐

GraphRAG 与 HippoRAG 深度对比:在 RAGFlow 中如何选择知识图谱方案?

本文深入对比了GraphRAG与HippoRAG在RAGFlow中的知识图谱构建方案,分析了两者在技术架构、资源消耗和场景适配性上的核心差异。GraphRAG适合需要快速响应和资源有限的场景,而HippoRAG则更适用于精确关系推理的专业领域。文章还提供了RAGFlow的演进路线和选型决策框架,帮助架构师根据实际需求做出合理选择。

weixin_27889245的博客 246

Js 中的定时器

定时器

weixin_41806264的博客 2万+

群晖NAS安装HomeAssistant保姆级教程:从Docker部署到智能设备接入

本文提供了一份详尽的群晖NAS安装HomeAssistant保姆级教程,涵盖从Docker部署到智能设备接入的全过程。通过规划存储路径、配置容器环境变量和网络模式,确保系统稳定运行。教程还介绍了如何接入小米、苹果HomeKit等智能家居设备,并利用自动化与仪表盘打造本地化、高响应速度的智能中枢,实现数据隐私与远程控制的完美平衡。

play7的博客 694

JavaScript定时器

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

weixin_52629158的博客 1万+

飞塔防火墙和paloalto防火墙构建ipsec

一、配置fortigate防火墙1.防火墙配置上网功能1.1配置fortigate的wan1接口IP为100.100.100.2/24VLAN交换internal,IP地址为192.168.156.99/24。开启DHCP分配IP地址范围为192.168.156.110-192.168.156.2101.2配置访问互联网的缺省路由1.3配置访问互联网的安全策略2.配置与Paloalto防火墙的IPSECVPN。

weixin_44675999的博客 3738

中国高精度年度平均气温栅格数据集(1901-2024)

本文基于中国月度平均气温栅格数据集,计算生成1901-2024年1km分辨率的年度平均气温数据集,并按中国省市行政区划进行裁剪。该数据集融合CRU全球数据和WorldClim高分辨率数据,经496个站点验证,具有高时空精度和长时间序列特点,覆盖全国(含港澳台)逾百年气温记录,为气候变化研究、生态水文分析及农业生产评估等提供重要数据支撑。数据格式为Tif,单位为0.1℃,可获取全国、各省及各市三个尺度的气温栅格数据。

PPdata_Academy的博客 1244

js 定时器

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

qq_41045651的博客 3713

从USB相机标定到Aruco码精准定位:基于aruco-ros的机器人视觉实践

本文详细介绍了基于aruco-ros的机器人视觉实践,从USB相机标定到Aruco码精准定位的全流程。通过实战案例和优化技巧,展示了Aruco码在机器人导航中的高精度位姿识别能力,帮助开发者快速实现毫米级视觉定位系统。

weixin_27310417的博客 487

计数器函数-注册倒计时

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

一次请求穿过的六道关卡:微服务基础组件的通信与IO、事件驱动、负载均衡、服务路由、API网关与配置协调

微服务的稳定性往往取决于看不见的基础组件。本文跟随一次下单请求,依次穿过API网关、服务路由、负载均衡与服务通信,再沿事件分支扇出,并从控制面审视配置中心。通信层剖析握手成本、连接复用、epoll与主从Reactor、心跳判活、退避抖动、截止时间与重试预算;事件层讲解编舞与编排、事务发件箱和幂等消费;均衡与路由对比静态与动态算法、路由链、全链路灰度与同区保底;网关讨论过滤器链与限流算法;配置部分给出四类配置、长轮询与共识协调,最后归纳五道防线。文中关键数据均来自可在Java8运行的演示程序。

曾经“等你生日那天”都遥远得像未来,如今却可欢愉的挥手说“下个十年见” 172万+

windows 配置 libxml2

路径:\libiconv-1.9.2-1-src.zip\src\libiconv\1.9.2\libiconv-1.9.2\include\。执行完后,在当前win32目录中会生成了一个bin.msvc目录,其中就有开发需要的libxml2.lib和libxml2.dll文件。将 libiconv.la 复制到 新建的 lib 目录,并将其改名为 iconv.lib。路径:libiconv-1.9.2-1-bin.zip\lib\。将如下的 iconv.h 复制到新建的 include 目录。

SHELLCODE_8BIT的博客 3886

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

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

weixin_39530960的博客 429

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

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

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

AinUser的博客 4594

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

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

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

weixin_39928003的博客 378

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

JS定时器

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

Java技术 432

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、付费专栏及课程。

余额充值