2011-12-15 1 views
1

$.getJson 요청의 결과에서 호출자 함수로 콘텐츠를 반환 할 때 가장 좋은 방법은 무엇입니까? $.getJson 호출이있는 $.fn.getSomeData이라는 함수가 있습니다.이 함수는 JSP에서 내 웹 서비스를 사용하려는 JS 파일을 가져와야합니다.jQuery - getJson 요청에서 호출자 함수로 콘텐츠를 반환 할 때 가장 좋은 방법

호출하는 JSP 내부에서 함수는 내 $.fn.getSomeData 함수를 호출합니다.

$.getjson 요청이 비동기이기 때문에 JSON 처리를 고려하기 전에 콜백 함수가 실행될 때까지 기다려야합니다. 호출 된 JSP의 함수에 결과 데이터를 다시 전달하는 가장 좋은 방법은 무엇입니까?

Div를 $.fn.getSomeData 메서드로 전달하고 $ .getJson 콜백 함수에서 Divson 처리를 수행하고 내가 원하는대로 Div에 추가하는 등의 다른 옵션을 읽었습니다.

두 번째 옵션은 함수를 $.fn.getSomeData에 전달하는 것이 었습니다. 이 함수는 $.getjson 콜백 함수에서 호출 할 수 있습니다.

누군가가 모범 사례를 권장 할 수 있습니까? 내 외부 JS 파일에서 커플 링을 줄이기 위해 Div를 내 $.fn.getSomeData 함수에 전달하는 옵션을 사용하지 않는 것을 선호합니다.

또한 콜백이 실행 된 후에도 어떤 식 으로든 트리거 할 수있는 $.fn.getSomeData으로 JSP에서 호출하는 콜백 함수를 추가하는 방법이 있습니까?

귀하의 의견을 기다리겠습니다.

답변

1

두 번째 버전은 원하는 것입니다.

getJson 요청이 완료 될 때 실행하려는 함수를 전달하십시오.

$.fn.getSomeData = function(callback) { 
    $.getJSON('url', data, callback); 
} 

$('div').getSomeData(function() { 
    // do something 
}); 

먼저 데이터를 처리하고 함수 이렇게 호출하려면 :

$.fn.getSomeData = function(callback) { 
    $.getJSON('url', data, function(result) { 
     // do something with data 
     callback(result); 
    }); 
} 
+0

먼저 생성 JSON 어떤 처리를 수행 한 다음에 전달 함수를 수정 JSON을 통과 할 수있다 ? – cduggan

+1

@linuxlewis 물론 편집을 참조하십시오. –