복붙노트

[JQUERY] 아약스에 대한 설정 시간 제한 (jQuery를)

JQUERY

아약스에 대한 설정 시간 제한 (jQuery를)

해결법


  1. 1.$ 아약스 설명서를 읽어 보시기 바랍니다,이 덮여 주제입니다.

    $ 아약스 설명서를 읽어 보시기 바랍니다,이 덮여 주제입니다.

    $.ajax({
        url: "test.html",
        error: function(){
            // will fire when timeout is reached
        },
        success: function(){
            //do something
        },
        timeout: 3000 // sets timeout to 3 seconds
    });
    

    기능 (jqXHR, textStatus, errorThrown) 옵션 : 당신은 오류의 유형은 오류의 textStatus 매개 변수에 액세스하여 발생 된 것을 볼 수 있습니다. 옵션은 "중단", "타임 아웃", "오류", 및 "parsererror"입니다.


  2. 2.여기에 설정하고 jQuery의 이전 및 새 paradigmes에서 타임 아웃을 감지 증명한다 몇 가지 예입니다.

    여기에 설정하고 jQuery의 이전 및 새 paradigmes에서 타임 아웃을 감지 증명한다 몇 가지 예입니다.

    라이브 데모

    jQuery로 약속 1.8 이상

    Promise.resolve(
      $.ajax({
        url: '/getData',
        timeout:3000 //3 second timeout
      })
    ).then(function(){
      //do something
    }).catch(function(e) {
      if(e.statusText == 'timeout')
      {     
        alert('Native Promise: Failed from timeout'); 
        //do something. Try again perhaps?
      }
    });
    

    jQuery를 1.8 이상

    $.ajax({
        url: '/getData',
        timeout:3000 //3 second timeout
    }).done(function(){
        //do something
    }).fail(function(jqXHR, textStatus){
        if(textStatus === 'timeout')
        {     
            alert('Failed from timeout'); 
            //do something. Try again perhaps?
        }
    });​
    

    jQuery를 <= 1.7.2

    $.ajax({
        url: '/getData',
        error: function(jqXHR, textStatus){
            if(textStatus === 'timeout')
            {     
                 alert('Failed from timeout');         
                //do something. Try again perhaps?
            }
        },
        success: function(){
            //do something
        },
        timeout:3000 //3 second timeout
    });
    

    textStatus의 PARAM (또는 jqXHR.statusText)이 오류가 무엇인지 알려 드릴 것입니다 것을 알 수 있습니다. 당신이 실패가 타임 아웃에 의한 것을 알고 싶은 경우에 유용 할 수 있습니다.

    SRC : http://api.jquery.com/jQuery.ajax/


  3. 3.이 같은 아약스 옵션에서 시간 제한 설정을 사용할 수 있습니다 :

    이 같은 아약스 옵션에서 시간 제한 설정을 사용할 수 있습니다 :

    $.ajax({
        url: "test.html",
        timeout: 3000,
        error: function(){
            //do something
        },
        success: function(){
            //do something
        }
    });
    

    여기 아약스 옵션에 대한 모든 읽기 : http://api.jquery.com/jQuery.ajax/

    시간 초과가 발생하면 오류 처리기가 트리거되지 성공 핸들러 것을 기억 :)


  4. 4.전체 기능을 갖춘 아약스의 jQuery를 기능을 사용합니다. 예제 https://stackoverflow.com/a/3543713/1689451와 비교.

    전체 기능을 갖춘 아약스의 jQuery를 기능을 사용합니다. 예제 https://stackoverflow.com/a/3543713/1689451와 비교.

    단지 참조 SO 질문과 코드를 통합, 테스트하지 않고 :

    target = $(this).attr('data-target');
    
    $.ajax({
        url: $(this).attr('href'),
        type: "GET",
        timeout: 2000,
        success: function(response) { $(target).modal({
            show: true
        }); },
        error: function(x, t, m) {
            if(t==="timeout") {
                alert("got timeout");
            } else {
                alert(t);
            }
        }
    });​
    
  5. from https://stackoverflow.com/questions/5225597/set-timeout-for-ajax-jquery by cc-by-sa and MIT license