한 페이지에 여러 카운트 다운 (js / jQuery)

알렉세이 사마라

한 페이지에 간단한 카운트 다운을 거의 (5 ~ 25 개) 배치하려고하는데 브라우저 충돌 (100 % CPU로드)

누군가 pls를 도와주세요!

function timersInit(){
    $('[data-countdown]').each(function() {
        var timerObject = $(this),
            time_left_nix = parseInt(timerObject.data('countdown')),
            time_left_h = Math.floor(time_left_nix / 3600),
            time_left_m = Math.floor((time_left_nix / 60) - (time_left_h * 60)),
            time_left_s = Math.floor(time_left_nix - (time_left_m * 60) - (time_left_h * 3600));

        timerObject.text(time_left_h + ":" + (time_left_m < 10 ? "0" + time_left_m : time_left_m) + ":" + time_left_s);
    });

    setTimeout(timersInit(), 1000);
}
투 샤르

코드의 문제는 함수 timersInit()가 즉시 무한히 호출된다는 것입니다.

함수는 내부에서 즉시 호출 setTimeout되고 반환 된 값은 시간 초과 후 호출 할 함수로 사용됩니다. 이로 인해 브라우저가 중단 될 때까지 함수가 무한 반복적으로 호출됩니다.

function timersInit() {

    ....

    setTimeout(timersInit(), 1000);
    // timersInit(): means call immediately
}

문제를 해결하기 위해 호출하는 대신 함수 참조를 사용할 수 있습니다.

setTimeout(timersInit, 1000); // Removed `()` of `timersInit`

성능 비트를 개선하기 위해 요소를 캐시하고 보이는 요소 만 반복하는 것이 좋습니다.

var countdownEl = $('[data-countdown]:visible'); // Cache

function timersInit() {
    countdownEl.text(function () { // Use cached version instead of diving into DOM
        var time_left_nix = parseInt($(this).data('countdown')),
            time_left_h = Math.floor(time_left_nix / 3600),
            time_left_m = Math.floor((time_left_nix / 60) - (time_left_h * 60)),
            time_left_s = Math.floor(time_left_nix - (time_left_m * 60) - (time_left_h * 3600));

        return time_left_h + ":" + (time_left_m < 10 ? "0" + time_left_m : time_left_m) + ":" + time_left_s;
    });

    setTimeout(timersInit, 1000);
}

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

여러 값에 대한 PHP jQuery 카운트 다운

분류에서Dev

한 페이지에 여러 카운트 다운 타이머

분류에서Dev

카운트 다운 시간 (H : i : s)을 사용하여 jquery 또는 js에 대한 메이커 카운트 다운 타이머는 어떻게됩니까?

분류에서Dev

한 페이지에 두 개의 JS 카운트 다운 시도

분류에서Dev

Moment JS : 카운트 다운이 정확한 차이를 계산하지 않고 카운트 다운에 도달

분류에서Dev

같은 페이지에서 여러 카운트 다운

분류에서Dev

jQuery 카운트 다운 타이머-먼저 시작하여 매월 끝까지 카운트 다운?

분류에서Dev

Ruby on Rails datetime 입력에 대한 jQuery 카운트 다운

분류에서Dev

곧 나올 페이지에 대한 JQuery 카운트 다운 진행률 표시 줄

분류에서Dev

다른 쿼리에 대한 여러 카운트 결과

분류에서Dev

js 및 php를 사용하여 양식에 대한 카운트 다운 타이머 설정 및 표시

분류에서Dev

JS / jQuery에 카운트 다운 타이머가 필요합니다.

분류에서Dev

연말까지 카운트 다운-JS

분류에서Dev

mysql의 동일한 테이블에 여러 카운트

분류에서Dev

각기 다른 td 카운트를 갖는 한 페이지의 여러 테이블에 대한 데이터 테이블

분류에서Dev

postgresql은 여러 값에 대한 고유 카운트를 얻습니다.

분류에서Dev

여러 열 및 행에 대한 Hive / SQL 카운트 발생

분류에서Dev

HTML 페이지에서 여러 (14) 카운트 다운이 작동하지 않음

분류에서Dev

셀 테이블의 여러 카운트 다운 타이머

분류에서Dev

Listview의 여러 카운트 다운 타이머

분류에서Dev

jQuery에서 카운트 다운 타이머 스타일 지정

분류에서Dev

카운트 다운 Jquery

분류에서Dev

페이지 스크롤의 jQuery 카운트 cm-카운터

분류에서Dev

여러 기능으로 드롭 다운에 대한 Noob JS

분류에서Dev

jQuery 카운트 다운이 다시 시작되지 않음

분류에서Dev

동일한 SQL Server 2012 테이블에 대한 여러 카운트

분류에서Dev

JQuery 카운트 다운 타이머가 카운트 다운되지 않습니다.

분류에서Dev

간단한 Jquery 카운트 다운 문제

분류에서Dev

Moment.js, 사용자 지정 날짜 형식 및 콜백과의 차이로 인한 카운트 다운

Related 관련 기사

  1. 1

    여러 값에 대한 PHP jQuery 카운트 다운

  2. 2

    한 페이지에 여러 카운트 다운 타이머

  3. 3

    카운트 다운 시간 (H : i : s)을 사용하여 jquery 또는 js에 대한 메이커 카운트 다운 타이머는 어떻게됩니까?

  4. 4

    한 페이지에 두 개의 JS 카운트 다운 시도

  5. 5

    Moment JS : 카운트 다운이 정확한 차이를 계산하지 않고 카운트 다운에 도달

  6. 6

    같은 페이지에서 여러 카운트 다운

  7. 7

    jQuery 카운트 다운 타이머-먼저 시작하여 매월 끝까지 카운트 다운?

  8. 8

    Ruby on Rails datetime 입력에 대한 jQuery 카운트 다운

  9. 9

    곧 나올 페이지에 대한 JQuery 카운트 다운 진행률 표시 줄

  10. 10

    다른 쿼리에 대한 여러 카운트 결과

  11. 11

    js 및 php를 사용하여 양식에 대한 카운트 다운 타이머 설정 및 표시

  12. 12

    JS / jQuery에 카운트 다운 타이머가 필요합니다.

  13. 13

    연말까지 카운트 다운-JS

  14. 14

    mysql의 동일한 테이블에 여러 카운트

  15. 15

    각기 다른 td 카운트를 갖는 한 페이지의 여러 테이블에 대한 데이터 테이블

  16. 16

    postgresql은 여러 값에 대한 고유 카운트를 얻습니다.

  17. 17

    여러 열 및 행에 대한 Hive / SQL 카운트 발생

  18. 18

    HTML 페이지에서 여러 (14) 카운트 다운이 작동하지 않음

  19. 19

    셀 테이블의 여러 카운트 다운 타이머

  20. 20

    Listview의 여러 카운트 다운 타이머

  21. 21

    jQuery에서 카운트 다운 타이머 스타일 지정

  22. 22

    카운트 다운 Jquery

  23. 23

    페이지 스크롤의 jQuery 카운트 cm-카운터

  24. 24

    여러 기능으로 드롭 다운에 대한 Noob JS

  25. 25

    jQuery 카운트 다운이 다시 시작되지 않음

  26. 26

    동일한 SQL Server 2012 테이블에 대한 여러 카운트

  27. 27

    JQuery 카운트 다운 타이머가 카운트 다운되지 않습니다.

  28. 28

    간단한 Jquery 카운트 다운 문제

  29. 29

    Moment.js, 사용자 지정 날짜 형식 및 콜백과의 차이로 인한 카운트 다운

뜨겁다태그

보관