찾다
웹 프론트엔드JS 튜토리얼setTimeout 및 setInterval_javascript 기술에 대한 간략한 토론

최신 코드를 작성할 때 프로젝트에서 setTimeout(fun,0)을 사용하는 사람을 본 적이 있어서 요약해 보고자 합니다. 개인적인 이해이니, 틀린 부분이 있으면 지적 부탁드립니다. 감사합니다

JavaScript 타이머의 작동 방식을 이해하려면 먼저 JavaScript 엔진이 단일 스레드라는 점을 이해해야 합니다. 이는 JavaScript 엔진이 서비스 대기열을 가지고 있다는 것으로 이해될 수 있습니다. 모든 인터페이스 요소 이벤트, 예약된 트리거 콜백 및 비동기 요청 콜백이 이 작업 대기열에 대기하며 처리를 기다리고 있습니다. 모든 작업은 최소한의 단위이며 처리를 방해하지 않습니다. 이렇게 하면 setTimeout(fun,0)을 이해할 수 있습니다. 작업 대기열이 비어 있지 않으면 코드가 즉시 실행된다는 의미는 아닙니다(사실 브라우저마다 실제로 이를 실행하는 방식에는 차이가 있습니다. 최신 브라우저에서는 실제로 그렇습니다. 4ms일 수 있습니다. 이전 버전은 더 길 수도 있고 16ms도 가능합니다. 그리고 setTimeout(fun, time)은 이 작업 대기열에 fun 콜백을 추가하는 데 걸리는 시간, 즉 fun을 실행하는 데 최소한의 시간이 걸리는 것을 의미합니다.

예:

setTimeout(function () {
 console.log(1);
}, 0);
var tem = 0;
for (var i = 1; i < 1000000; i++) {
 tem += i;
};
console.log(2);

결과를 다음과 같이 표시합니다.

코드 복사 코드는 다음과 같습니다.

2
1

즉, setTimeout을 실행하면 함수 콜백이 작업 대기열에 추가되지만 js 엔진이 여전히 현재 js를 처리하느라 바빠서 즉시 실행되지 않고 이 코드 이후에만 작업 목록으로 이동합니다. 세그먼트가 실행되어 새 작업을 가져오므로 결과는 먼저 2를 표시한 다음 1을 표시합니다.

setInterval(fun, time) 메소드는 일정 간격으로 큐에 fun을 추가하는 것입니다. 그렇다면 fun의 실행 시간이 시간보다 길면 어떻게 될까요?

코드 보기

var num = 0;
var time = setInterval(function () {
 var tem = 0;
 for (var i = 1; i < 99999999; i++) {
 tem += i;
 };
 num ++;
 console.log(num);
}, 100);

setTimeout(function (){
 clearInterval(time);
}, 1000);

100ms마다 코드를 실행하고 1초 후에 타이머를 지우는 것을 의미합니다. 하지만 결과는 어떻습니까?

결과는

로 표시됩니다.

코드 복사 코드는 다음과 같습니다.

1
2
3

즉, 실제로 그렇게 많이 실행되지는 않았습니다. 즉, 일부 간격을 건너뛰므로 여러 코드 실행 사이의 간격이 예상보다 작을 수 있습니다. 타이머 코드가 대기열에 추가될 때 타이머 코드 인스턴스가 존재하면 타이머 코드를 건너뛰는 것으로 나타났습니다.

사진을 인용하시면 이해가 쉽습니다.

위 내용은 이 글의 전체 내용입니다. 모두 마음에 드셨으면 좋겠습니다.

성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
settimeout和setinterval有什么区别settimeout和setinterval有什么区别Aug 15, 2023 pm 02:06 PM

settimeout和setInterval的区别:1、触发时间,settimeout是一次性的,它在设定延迟时间之后执行一次函数,而setinterval是重复性的,它会以设定的时间间隔重复执行函数;2、执行次数,settimeout只执行一次,而setinterval会一直重复执行,直到被取消。

如何使用setInterval函数定时执行代码?如何使用setInterval函数定时执行代码?Nov 18, 2023 pm 05:00 PM

如何使用setInterval函数定时执行代码?在JavaScript中,setInterval函数是一个非常有用的函数,它可以定时执行一段代码。通过setInterval函数,我们可以在特定的时间间隔内重复执行指定的代码。本文将详细介绍如何使用setInterval函数,并提供具体的代码示例。一、setInterval函数的基本语法如下:setInterv

setInterval如何停止setInterval如何停止Dec 11, 2023 am 11:39 AM

可以使用clearInterval函数来停止由setInterval函数创建的定时器。setInterval函数会返回一个唯一的定时器ID,可以将该ID作为参数传递给clearInterval函数,以停止定时器的执行。

Window.setInterval()方法怎么使用Window.setInterval()方法怎么使用Aug 31, 2023 am 09:33 AM

Window.setInterval() 方法的基本语法是“window.setInterval(function, delay)”,function是要重复执行的函数或代码块,delay是每次执行之间的时间间隔,以毫秒为单位。该方法是JavaScript中用于定时重复执行指定函数或代码的方法,它的使用非常简单,只需要传入要执行的函数或代码块以及重复执行的时间间隔。

setTimeout()和setInterval()在JavaScript中有什么区别?setTimeout()和setInterval()在JavaScript中有什么区别?Sep 01, 2023 pm 03:01 PM

setTimeout(function,duration)-该函数在duration毫秒后调用函数。这适用于一次执行。让我们看一个例子-它等待2000毫秒,然后运行回调函数alert(‘Hello’)-setTimeout(function(){alert(&#39;Hello&#39;);},2000);setInterval(function,uration)-此函数在每duration毫秒后调用function。这可以无限次进行。让我们看一个例子-它每2000毫秒触发一次警

setIntervalsetIntervalAug 02, 2023 am 10:17 AM

setInterval函数是JavaScript中的一个定时器函数,允许你设置一个间隔,并在每个间隔之后执行指定的代码,需要定期处理某些任务或实时更新页面元素的情况非常有用,要注意使用setInterval时的性能和可靠性问题,并根据需要进行优化。

setinterval用法详解setinterval用法详解Sep 12, 2023 am 09:55 AM

setinterval用法是“setInterval(function, delay);”,“function”是要执行的函数,可以是函数表达式或函数引用,“delay”是执行函数之间的时间间隔,以毫秒为单位。setInterval是JavaScript中用于周期性执行代码的函数,它接受一个函数和一个时间间隔作为参数,会按照指定的时间间隔重复执行函数。

在JavaScript中使用clearTimeout函数取消setTimeout的计时器在JavaScript中使用clearTimeout函数取消setTimeout的计时器Nov 18, 2023 am 08:05 AM

在JavaScript中使用clearTimeout函数取消setTimeout的计时器,需要具体代码示例在JavaScript中,setTimeout函数是用来在指定的时间延迟后执行一次特定的代码。而setInterval函数则是用来在指定的时间间隔内重复执行一段特定的代码。然而,在某些情况下,我们可能需要在定时器执行之前取消它。在这种情况下,就可以使用c

See all articles

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

AI Hentai Generator

AI Hentai Generator

AI Hentai를 무료로 생성하십시오.

뜨거운 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)

DVWA

DVWA

DVWA(Damn Vulnerable Web App)는 매우 취약한 PHP/MySQL 웹 애플리케이션입니다. 주요 목표는 보안 전문가가 법적 환경에서 자신의 기술과 도구를 테스트하고, 웹 개발자가 웹 응용 프로그램 보안 프로세스를 더 잘 이해할 수 있도록 돕고, 교사/학생이 교실 환경 웹 응용 프로그램에서 가르치고 배울 수 있도록 돕는 것입니다. 보안. DVWA의 목표는 다양한 난이도의 간단하고 간단한 인터페이스를 통해 가장 일반적인 웹 취약점 중 일부를 연습하는 것입니다. 이 소프트웨어는

SecList

SecList

SecLists는 최고의 보안 테스터의 동반자입니다. 보안 평가 시 자주 사용되는 다양한 유형의 목록을 한 곳에 모아 놓은 것입니다. SecLists는 보안 테스터에게 필요할 수 있는 모든 목록을 편리하게 제공하여 보안 테스트를 더욱 효율적이고 생산적으로 만드는 데 도움이 됩니다. 목록 유형에는 사용자 이름, 비밀번호, URL, 퍼징 페이로드, 민감한 데이터 패턴, 웹 셸 등이 포함됩니다. 테스터는 이 저장소를 새로운 테스트 시스템으로 간단히 가져올 수 있으며 필요한 모든 유형의 목록에 액세스할 수 있습니다.

Atom Editor Mac 버전 다운로드

Atom Editor Mac 버전 다운로드

가장 인기 있는 오픈 소스 편집기

ZendStudio 13.5.1 맥

ZendStudio 13.5.1 맥

강력한 PHP 통합 개발 환경