• 회원가입
  • 로그인
  • 구글아이디로 로그인

[Window_Object] JS - setInterval() 메서드 ★★★ - 일정 시간 후 자동 반복 실행. (= setInterval메서드 = 셋인터벌) ※ 일정 시간 후 얼럿창 띄우기 ※ 마감 종료 전 남은 날짜시간 표시 (= D-day = Dday = 디데이)

목차
  1. setInterval() 예제 - 1초마다 텍스트 표시
  2. setInterval() 정의
  3. setInterval() 구문
  4. setInterval() 예제 - 3초 후 경고창 띄우기
  5. setInterval() 예제 - 남은 날짜 표시 (= D-day = 디데이)
  6. setInterval() 예제 - 디지털 시계 (시간 멈춤 기능 X)
  7. setInterval() 예제 - 디지철 시계 (시간 멈춤 기능 O)
  8. setInterval() 예제 - 진행바/진도바 (애니 효과 적용 O)
  9. setInterval() 예제 - 0.5초마다 배경색 변경 (= 배경 깜빡깜빡)
  10. setInterval() 예제 - 함수로 매개변수 전달 방법
  11. setInterval() 예제 - 1초마다 서버에서 데이터 가져오기 ★

※ 일정 시간 후 어떤 행위를 반복해서 하게 할 때 사용.

 

setInterval() 예제 - 1초마다 텍스트 표시

[방법1] - 함수 이용 X

 

<p id="hz"></p>


<script>

const hz = document.getElementById("hz");

setInterval(function() {hz.innerHTML += "홈짱닷컴 Homzzang.com<br>"}, 1000);

</script>

 

결과보기


[방법2] - 함수 이용 O

 

<p id="hz"></p>


<script>

setInterval(homzzang, 1000);


function homzzang() {

  document.getElementById("hz").innerHTML += "홈짱닷컴 Homzzang.com<br>";

}

</script>

 

결과보기

 

setInterval() 정의

 

지정된 간격(밀리초)으로 함수를 호출.

 


 

1.

함수 호출은 아래 경우 발생 때까지 지속.

 

2.

1 second(초) = 1000 milliseconds(밀리초)

 

3. cf.

setTimeout() 메서드 - 함수 1회만 실행.

 

4. clearInterval() 메서드 사용법
id = setInterval(function, milliseconds);

clearInterval(id);

 

5. 관련 메서드

  • setInterval() 메서드 - 일정 시간마다 반복해 함수 실행
  • clearInterval() 메서드 - setInterval() 해제
  • setTimeout() 메서드 - 1회만 함수 실행
  • clearTimeout() 메서드 - setTimeout() 해제

 

6.

모든 브라우저 지원.

 

7. MDN setInterval() 예제 보기

https://developer.mozilla.org/en-US/docs/Web/API/setInterval

 

 

setInterval() 구문

 

방법1 - IE9 이하 경우 작동 X

setInterval(myFunc, milliseconds, param1, param2, ...)

 

방법2 - 모든 브라우저 작동 O
setInterval(function() {myFunc("param1", "param2")}, milliseconds)


[매개변수]

 

myFunc

필수. 실행할 함수

 

milliseconds

필수. 밀리초 (1/1000초) ※ 10보다 작으면, 10 사용.

param1, param2, ...

선택. 함수로 전달할 매개변수

  • 방법1 경우, IE9 이하 지원 X
  • 방법2 경우, 모든 브라우저 지원 O

 


[반환값]

 

타이머 id를 숫자로 반환.

※ 해당 id를 clearInterval(id) 매서드에 전달해 반복 멈춤.

 

 

setInterval() 예제 - 3초 후 경고창 띄우기

 

<button onclick="homzzang()">클릭</button>


<script>

function homzzang() {

 setInterval(function(){ alert("홈짱닷컴 Homzzang.com"); }, 3000);

}

</script>

 

결과보기

※ 클릭 후 3초 후에 홈짱닷컴 Homzzang.com 얼럿창 뜸. 확인 누르면 계속 3초 후 뜸.

 

setInterval() 예제 - 남은 날짜 표시 (= D-day = 디데이)

 

<style>

#endcount {color:red;}          

</style>


<?php

$end_day = "2021-12-31 23:59:59"; // 마감날짜

?>


<p id="endcount"></p>


<script>

var endDatetime = new Date("<?php echo $end_day?>").getTime();

var x = setInterval(function() {

    var now = new Date().getTime();

    var leftTime = endDatetime - now;

    var dd = Math.floor(leftTime / (1000 * 60 * 60 * 24));

    var hh = Math.floor((leftTime % (1000 * 60 * 60 * 24)) / (1000 * 60 * 60));

    var mm = Math.floor((leftTime % (1000 * 60 * 60)) / (1000 * 60));

    var ss = Math.floor((leftTime % (1000 * 60)) / 1000);

 

    document.getElementById("endcount").innerHTML ="남은 시간: "+ dd + "일 " + hh + "시간 " + mm + "분 " + ss + "초";

    if (leftTime < 0) {

        clearInterval(x);

        document.getElementById("endcount").innerHTML = "마감";

    }

}, 1000);

</script>

 

둘레아빠 님 (211211) https://sir.kr/qa/441621

 

setInterval() 예제 - 디지털 시계 (시간 멈춤 기능 X)

 

<p id="demo"></p>


<script>

setInterval(homzzang, 1000);


function homzzang() {

  const date = new Date();

  document.getElementById("demo").innerHTML = date.toLocaleTimeString();

}

</script>

 

결과보기

 

setInterval() 예제 - 디지철 시계 (시간 멈춤 기능 O)

 

<p id="demo"></p>


<button onclick="stopTime()">시간멈추기</button>


<script>

const hz = setInterval(homzzang, 1000);


function homzzang() {

  const date = new Date();

  document.getElementById("demo").innerHTML = date.toLocaleTimeString();

}


function stopTime() {

  clearInterval(hz);

}

</script>

 

결과보기

 

setInterval() 예제 - 진행바/진도바 (애니 효과 적용 O)

 

<style>

#hz {

  width: 100%;

  height: 30px;

  position: relative;

  background-color: silver;

}


#bar {

  background-color: blue;

  width: 10px;

  height: 30px;

  position: absolute;

}

</style>


<div id="hz">

  <div id="bar"></div>

</div>

<br>

<button onclick="homzzang()">클릭</button> 


<script>

function homzzang() {

  const bar = document.getElementById("bar");   

  let width = 0;

  const pgs = setInterval(progress, 10);

  function progress() {

    if (width == 100) {

      clearInterval(pgs);

    } else {

      width++; 

      bar.style.width = width + '%'; 

    }

  }

}

</script>

 

결과보기

 

setInterval() 예제 - 0.5초마다 배경색 변경 (= 배경 깜빡깜빡)

 

<button onclick="stopColor()">토글 멈추기</button>


<script>

hz = setInterval(homzzang, 500);

 

function homzzang() {

  let x = document.body;

  x.style.backgroundColor = x.style.backgroundColor == "yellow" ? "pink" : "yellow";

}

 

function stopColor() {

  clearInterval(hz);

}

</script>

 

결과보기

 

setInterval() 예제 - 함수로 매개변수 전달 방법

[올바른 방법]

 

<p id="demo1"></p>

<p id="demo2" style="color:red;"></p>


<script>

setInterval(function() {homzzang("홈짱닷컴", "Homzzang.com")}, 2000);


function homzzang(a, b) {

  document.getElementById("demo1").innerHTML += a + " " + b + "<br>";

  document.getElementById("demo2").innerHTML = "매개변수: " + a + " " + b;

}

</script>

 

결과보기


[틀린 방법] - 아래처럼 하면, IE9 이하 경우 작동 X

 

<p id="demo1"></p>

<p id="demo2" style="color:red;"></p>


<script>

setInterval(homzzang, 2000, "홈짱닷컴", "Homzzang.com");


function homzzang(a, b) {

  document.getElementById("demo1").innerHTML += a + " " + b + "<br>";

  document.getElementById("demo2").innerHTML = "매개변수: " + a + " " + b;

}

</script>

 

결과보기 

 

setInterval() 예제 - 1초마다 서버에서 데이터 가져오기 ★

 

<script>

setInterval(() => {

    $.ajax({

        url: '데이터 보낼 주소'

        method: 'GET', 

        dataType: 'json', // 서버에서 반환할 데이터 형식

        success: function(response) { // 데이터 얻기 성공 시

            console.log(response);

          (예) $(".total_count").text(response.count);

   

        },

        error: function(xhr, status, error) { // 데이터 얻기 실패 시

            console.error('데이터 가져오기 실패:', error);

        }

    });

}, 1000); // 1000ms = 1초

</script>

 

미니님a 님 (241114) https://sir.kr/qa/546996


분류 제목
HTML_Objects JS - <address> 객체 - 연락처 (= address태그 = address요소 = 어드레스태그)
HTML_Objects JS - <area> 객체 - 이미지맵 링크 영역 (= area태그 = 에어리어태그) (HTML5수정)
HTML_Objects JS - <article> 객체 ★ - 자족적인 독립콘텐츠 (= 아티클태그 = article태그. IE9)
HTML_Objects JS - <aside> 객체 ★ - 관련별도콘텐츠표시 (= 부가콘텐츠 = 어사이드태그 = aside태그) (…
HTML_Objects JS - <audio> 객체 ★ - 음성파일재생 (=오디오태그 = audio태그) ※ 음성파일형식별로 브라우…
HTML_Objects JS - <b> 객체 ★ - 굵은글씨 (= b태그 = b요소 = 폰트굵기 = 비태그 = 볼드태그 = bol…
HTML_Objects JS - <base> 객체 - 상대주소 기본 URL/타켓 지정 (= base 태그 = 베이스 태그)
HTML_Objects JS - <bdo> 객체 - 텍스트출력방향 (= bdo태그 = bdo요소 = 글자방향 = 브도태그 = 비도태…
HTML_Objects JS - <blockquote> 객체 ★ - 긴 인용구 (= blockquote태그 = blockquote요…
HTML_Objects JS - <body> 객체 ★ - 문서영역 (= body태그 = body요소 = 본문영역 = 바디태그 = 보…
HTML_Objects JS - <br> 객체 ★ - 줄바꿈 (=br태그 = br요소 = 한줄아래로 = 비알태그 = 브르태그 = 브…
HTML_Objects JS - <button> 객체 ★ - 클릭버튼 (= button태그 = 버튼태그) (HTML5수정)
HTML_Objects JS - <canvas> 객체 - 그림그리기 (= canvas태그 = 캔버스태그) (IE9 이상. HTML추…
HTML_Objects JS - <caption> 객체 - 테이블제목 (= 표제목 = caption태그 = 캡션태그) (HTML5 …
HTML_Objects JS - <cite> 객체 - 인용구 제목 (= cite태그 = cite요소 = 저작물제목 = 인용태그 = …
HTML_Objects JS - <code> 객체 - 컴퓨터소스코드 출력 (= code태그 = 코드태그)
HTML_Objects JS - <col> 객체 - 테이블열그룹 (= col태그 = 콜태그) (HTML5 수정)
HTML_Objects JS - <colgroup> 객체 - 테이블의 col태그묶음 (= colgroup태그 = 콜그룹태그, HTM…
HTML_Objects JS - <datalist> 객체 - 입력가능값리스트 (= datalist태그 = 데이터리스트태그) (IE1…
HTML_Objects JS - <dd> 객체 - 항목세부설명 (= dd태그 = 디디태그)
55/67
목록
찾아주셔서 감사합니다. Since 2012