시간 지연 javascript 로 설정하는 방법

나는 이 한 장의 이미지를 클릭하면 내 웹 사이트 js 전환하십시오 이미지는 있지만 한 번 지연입니다 필요합니다. 이 지연입니다 1000ms 합니다. 얻으실 수 있습니다 다음 img_onclick.jpg 임g. 제프리 클릭합니다 보일 것이다. 그러면 그 다음) 때와 img_onclick.jpg 이미지를 박스트롤의 지연인 1000ms 임g. 제프리 표시됨을 전에 다시.

다음은 코드:

jQuery(document).ready(function($) {

    $(".toggle-container").hide();
    $(".trigger").toggle(function () {
        $(this).addClass("active");
        $(".trigger").find('img').prop('src', 'http://localhost:8888/images/img_onclick.jpg');
    }, function () {
        $(this).removeClass("active");
        $(".trigger").find('img').prop('src', 'http://localhost:8888/images/img.jpg');
    });
    $(".trigger").click(function () {
        $(this).next(".toggle-container").slideToggle();
    });
});
질문에 대한 의견 (4)
해결책
  • '사용하여 setTimeout ()' *:
var delayInMilliseconds = 1000; //1 second

setTimeout(function() {
  //your code to be executed after 1 second
}, delayInMilliseconds);

그렇게 할 수 없이 '스케쳐내 setTimeout': 이 질문) 는 다음과 같은 뜻이 있다.

해설 (2)
setTimeout(function(){

}, 500); 

배치하십시오 코드 내부에서 {} ''

'500' = 0.5 초

'2200' = 2.2 초

상술합니다.

해설 (0)
  • Es 6 솔루션 *

다음은 인스 / 기다리는 보유하고 있는 샘플 코드를 사용하여 실제 지연입니다.

그래도 일단 여기서 글을 위한 여러 가지 제약, 아닐 수도 있다는 것이 재미있다.

<! - begin 스니핏: js 숨기십시오: 거짓값 콘솔: 진정한 바벨. &gt 거짓값 -;

    async function delay(delayInms) {
      return new Promise(resolve  => {
        setTimeout(() => {
          resolve(2);
        }, delayInms);
      });
    }
    async function sample() {
      console.log('a');
      console.log('waiting...')
      let delayres = await delay(3000);
      console.log('b');
    }
    sample();

끝 - &lt 스니핏 >;!

해설 (1)

두 가지 유형의 타이머 기능을 javascript setTimeout (주로 사용) '' (기타) '와' setInterval

이러한 방법이 모두 동일한 서명입니다. 그들은 더 많은 시간 만큼 기능과 지연입니다 뒤로를 전화를 매개변수입니다.

반면 '후' 에서 '는' 한 번만 실행하므로 setTimeout 지연입니다 콜백 함수를 호출하는 setInterval 때마다 지연입니다 밀리체스.

두 방법 모두 사용할 수 있는 그 전에 정수 식별자입니다 되돌려줍니다 선택해제하여 타이머가.

'방법' 이 두 정수 식별자입니다 클레어타임우스 '와' 클라인터발 불러키지 반환되었습니다 위에서 총괄하였습니다 'setTimeout' 와 '' setInterval

alert("before setTimeout");

setTimeout(function(){
        alert("I am setTimeout");
   },1000); //delay is in milliseconds 

  alert("after setTimeout");

위의 코드를 실행할 경우 ' ' 이 있는 것을 확인할 수 있습니다 다음 경고에서는 setTimeout 전에 마지막으로 ' ' 나는 '후' setTimeout 후 경고에서는 setTimeout 1sec (1000ms)

수 있는 '에서 디이브이 너희는너희가 비유하사 setTimeout (.)' 가 t # 39, 즉 비동기적입니다 doesn& 기다리는 시간 경과 afaq 이동하기 전에 다음 기술서임을 이리에 '경고' (&quot setTimeout&quot 후;;).

alert("before setInterval"); //called first

 var tid = setInterval(function(){
        //called 5 times each time after one second  
      //before getting cleared by below timeout. 
        alert("I am setInterval");
   },1000); //delay is in milliseconds 

  alert("after setInterval"); //called second

setTimeout(function(){
     clearInterval(tid); //clear above interval after 5 seconds
},5000);

위의 코드를 실행할 경우 ' ' 경고 '이 있는 것을 확인할 수 있습니다 다음 setInterval 전에 마지막으로 경고에는' '나는 setInterval setInterval' 이후 5 회 이후 1sec setTimeout 또는 다른 모든 선택취소합니다 타이머 (1000ms) 때문에 5 초 후 1 초 ' ' 나는 무한히 setInterval 경고마다 얻을 수 있습니다.

  • 얼마나 있지만브라우저에 내부적으로 그게 가능*

내아기마저도 설명하란말야 고쿠가쿠인대학의 건학정신.

이해할 수 있는지 알아야 이벤트 대기열은 javascript 로. 이벤트 대기열은 있지만브라우저에 구현되어 있습니다. 얻을 수 있는 이벤트가 있을 때마다 트리거됨 js, 이 모든 이벤트 (클릭하십시오를 같은 상술합니다. ) 이 대기열은 추가됩니다. 그동안 우리가 그들을 브라우저를 실행할 때 걸리는 이벤트가 큐에서 및 실행하므로 하나씩.

이제 전화를 걸 때 ',' 네 '또는' setInterval 콜백하는 프레젠테이션이든 레지스터링 충족되었으며 타이머 setTimeout 브라우저에서 특정 시간, 결국 이벤트 후 및 it gets 추가되도록 대기열은 폐기합니다 javascript 는 이벤트 및 실행하므로 큐에서 거잖나.

때문에 이러한 문제가 발생할 수 있기 때문에, 그들은 오직 한가지만 자바스크립트 엔진 단일 스레드 한 번에 실행할 수 있다. 그래서, 그들이 다른 실행하십시오 javascript 와 타이머 추적할 수 없습니다. 그래서 이러한 타이머 등록된 브라우저 (않습니다를 있지만브라우저에 단일 스레드), it 타이머 기능과 큐에 있는 타이머가 만료된 후 이벤트 추가 추적할 수 있습니다.

이 경우, 같은 일이 발생합니까 setInterval '만' 에 대한 이벤트가 추가됩니다 대기열은 때까지 시간 간격에 후 다시 심해지기 클리어런스됩니다 또는 브라우저 페이지 새로 고침.

&gt. 참고 &gt. &gt. 이러한 기능은 최소값이 지연입니다 전달했는지 매개변수입니다 지연 &gt. 시간 콜백하는 한다. 타이머가 만료된 후 때문이다. &gt. 이벤트 큐에 추가하므로 브라우저에 의해 실행되도록 &gt. 그러나 실행하는 자바스크립트 엔진 콜백하는 따라 다릅니다 &gt. 큐의 포지셔닝하십시오 단일 스레드 이벤트 등 엔진 () 은 정보기술 (it) &gt. 모든 종목을 대기열은 하나씩 시행할 예정이다.

가끔 지정된 지연 시간 이상 걸릴 수 업그레이드됨 너회의 콜백하는 호출할 경우 특별히 다른 코드 블록을 처리하는 데 시간이 아니라 it what& # 39 의 스레드할 확증하노라 그곳에 대기열은.

Javascript 가 단일 스레드 언급한 바와 같이 할 수 있다. 따라서 오래 스레드할 막고 있습니다.

이 같은 코드

while(true) { //infinite loop 
}
    • 페이지 응답하지 메시지가 나타나는 사용자 수도 있다 "고 말했다.
해설 (2)

페이징됩니다 동기화를 위한 방법을 사용할 수 있습니다 (아래 참조).

function sleep(milliseconds) {
  var start = new Date().getTime();
  for (var i = 0; i < 1e7; i++) {
    if ((new Date().getTime() - start) > milliseconds){
      break;
    }
  }
}
해설 (0)

나를 이해할 수 있도록 하고, ll give my 입력입니다 i& # 39 때문에 임.

자동 스크롤 할 수 있는 슬라이드에서는 3 2 진정하라구요 I did 다음과 같습니다.


var isPlaying = true;

function autoPlay(playing){
   var delayTime = 3000;
   var timeIncrement = 3000;

   if(playing){
        for(var i=0; i
해설 (0)

다음은 내가 왜 이 문제를 해결하려면. I agree 일시정지할 코드를 실행하기 위해 필요한 타이밍 문제와 때문.

var delayInMilliseconds = 1000; 
setTimeout(function() {
 //add your code here to execute
 }, delayInMilliseconds);

이 새로운 코드가 일시정지할 1 초 동안 it 및 한편 코드를 실행합니다.

해설 (0)

새로고치기 하는 경우, 이것은 또 다른 포지빌레티:

setTimeout(function () { 
    $("#jsSegurosProductos").jsGrid("refresh"); 
}, 1000);
해설 (0)