복붙노트

[JQUERY] jQuery를 아약스 성공 콜백 함수 정의

JQUERY

jQuery를 아약스 성공 콜백 함수 정의

해결법


  1. 1.그냥 사용 :

    그냥 사용 :

    function getData() {
        $.ajax({
            url : 'example.com',
            type: 'GET',
            success : handleData
        })
    }
    

    성공 속성 함수 만 참조를 필요로하고,이 함수의 매개 변수로 데이터를 전달한다.

    당신 때문에 handleData 선언 방식이처럼 handleData 기능에 액세스 할 수 있습니다. 당신이 실제 선언 이전의 코드에서 기능을 사용하실 수 있도록 자바 스크립트가 실행하기 전에 함수 선언에 대한 코드를 분석 할 것이다. 이것은 권상로 알려져 있습니다.

    하지만 이것은 다음과 같이 선언 된 기능에 포함되지 않습니다

    var myfunction = function(){}
    

    인터프리터를 통과 할 때 그에만 사용할 수 있습니다.

    선언 함수의 2 가지 방법에 대한 자세한 내용은이 질문을 참조


  2. 2.jQuery를 1.5 (2011년 1월)부터이 일의 "새로운"방법은 대신 성공 콜백을 전달하는 연기 객체를 사용하는 것입니다. 당신은 $ 아약스의 결과를 반환 한 후 $ 아약스 호출 외부에서 콜백을 추가, .fail 등 메소드되는 .done를 사용해야합니다.

    jQuery를 1.5 (2011년 1월)부터이 일의 "새로운"방법은 대신 성공 콜백을 전달하는 연기 객체를 사용하는 것입니다. 당신은 $ 아약스의 결과를 반환 한 후 $ 아약스 호출 외부에서 콜백을 추가, .fail 등 메소드되는 .done를 사용해야합니다.

    function getData() {
        return $.ajax({
            url : 'example.com',
            type: 'GET'
        });
    }
    
    function handleData(data /* , textStatus, jqXHR */ ) {
        alert(data);
        //do some stuff
    }
    
    getData().done(handleData);
    

    이것은 AJAX 처리에서 처리하는 콜백, 당신은 모든 이제까지 원래 GetData의 () 함수를 수정하지 않고, 등 여러 콜백 실패 콜백을 추가 할 수 있습니다 분리한다. 이후에 완료 할 행동의 세트에서 AJAX 기능을 분리하는 것은 좋은 일입니다!

    Deferreds도 쉽게 단지 성공을 할 수없는 여러 비동기 이벤트의 훨씬 더 쉽게 동기화 할 수 있습니다 :

    예를 들어, 내가 계속하기 전에 경과에 타이머에 대해 여러 콜백 오류 처리기 및 대기를 추가 할 수 있습니다 :

    // a trivial timer, just for demo purposes -
    // it resolves itself after 5 seconds
    var timer = $.Deferred();
    setTimeout(timer.resolve, 5000);
    
    // add a done handler _and_ an `error:` handler, even though `getData`
    // didn't directly expose that functionality
    var ajax = getData().done(handleData).fail(error);
    
    $.when(timer, ajax).done(function() {
        // this won't be called until *both* the AJAX and the 5s timer have finished
    });
    
    ajax.done(function(data) {
        // you can add additional callbacks too, even if the AJAX call
        // already finished
    });
    

    jQuery를 사용 이연 객체의 다른 부분은 너무 - 당신은 그들과 함께 아주 쉽게 다른 비동기 작업에 jQuery를 애니메이션을 동기화 할 수 있습니다.


  3. 3.스크립트 외부 매개 변수를 정의하는 이유를 모르겠어요. 즉 불필요합니다. 콜백 함수가 자동으로 매개 변수로 반환 데이터로 호출됩니다. 성공 외부에서 콜백을 정의하는 것은 매우 가능하다 : 즉를

    스크립트 외부 매개 변수를 정의하는 이유를 모르겠어요. 즉 불필요합니다. 콜백 함수가 자동으로 매개 변수로 반환 데이터로 호출됩니다. 성공 외부에서 콜백을 정의하는 것은 매우 가능하다 : 즉를

    function getData() {
        $.ajax({
            url : 'example.com',
            type: 'GET',
            success : handleData
        })
    }
    
    function handleData(data) {
        alert(data);
        //do some stuff
    }
    

    handleData 함수가 호출하고 매개 변수는 아약스 함수에 전달됩니다.


  4. 4.당신의 성공 핸들러를 다시 작성하십시오 :

    당신의 성공 핸들러를 다시 작성하십시오 :

    success : handleData
    

    아약스 방법의 성공 속성은 함수에 대한 참조를 필요로한다.

    당신의 handleData 기능에서는 3 개 개의 매개 변수까지 걸릴 수 있습니다 :

    object data
    string textStatus
    jqXHR jqXHR
    

  5. 5.내가 작성합니다 :

    내가 작성합니다 :

    var handleData = function (data) {
        alert(data);
        //do some stuff
    }
    
    
    function getData() {
        $.ajax({
            url : 'example.com',
            type: 'GET',
            success : handleData
        })
    }
    

  6. 6.몇 시간 함께 연주 후 거의 둔된다. 기적이 나에게 와서, 그것을 작동합니다.

    몇 시간 함께 연주 후 거의 둔된다. 기적이 나에게 와서, 그것을 작동합니다.

    <pre>
    
    
    var listname = [];   
    
    
     $.ajax({
        url : wedding, // change to your local url, this not work with absolute url
        success: function (data) {
           callback(data);
        }
    });
    
    function callback(data) {
          $(data).find("a").attr("href", function (i, val) {
                if( val.match(/\.(jpe?g|png|gif)$/) ) { 
                 //   $('#displayImage1').append( "<img src='" + wedding + val +"'>" );
                     listname.push(val);
                } 
            });
    }
    
    function myfunction() {
    
    alert (listname);
    
    }
    
    </pre>
    

  7. 7.당신은 변수를 선언 할 필요가 없습니다. 아약스 성공 기능이 자동으로 3 개의 매개 변수를 취 기능 (Object 데이터, 문자열 textStatus, jqXHR jqXHR)

    당신은 변수를 선언 할 필요가 없습니다. 아약스 성공 기능이 자동으로 3 개의 매개 변수를 취 기능 (Object 데이터, 문자열 textStatus, jqXHR jqXHR)


  8. 8.구성 요소 즉 각 JS 코드에서 :

    구성 요소 즉 각 JS 코드에서 :

    function getData(){
        window.location.href = 'http://localhost:1036/api/Employee/GetExcelData';
    }
    
  9. from https://stackoverflow.com/questions/14754619/jquery-ajax-success-callback-function-definition by cc-by-sa and MIT license