[JQUERY] jQuery를 아약스 성공 콜백 함수 정의
JQUERYjQuery를 아약스 성공 콜백 함수 정의
해결법
-
1.그냥 사용 :
그냥 사용 :
function getData() { $.ajax({ url : 'example.com', type: 'GET', success : handleData }) }
성공 속성 함수 만 참조를 필요로하고,이 함수의 매개 변수로 데이터를 전달한다.
당신 때문에 handleData 선언 방식이처럼 handleData 기능에 액세스 할 수 있습니다. 당신이 실제 선언 이전의 코드에서 기능을 사용하실 수 있도록 자바 스크립트가 실행하기 전에 함수 선언에 대한 코드를 분석 할 것이다. 이것은 권상로 알려져 있습니다.
하지만 이것은 다음과 같이 선언 된 기능에 포함되지 않습니다
var myfunction = function(){}
인터프리터를 통과 할 때 그에만 사용할 수 있습니다.
선언 함수의 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.스크립트 외부 매개 변수를 정의하는 이유를 모르겠어요. 즉 불필요합니다. 콜백 함수가 자동으로 매개 변수로 반환 데이터로 호출됩니다. 성공 외부에서 콜백을 정의하는 것은 매우 가능하다 : 즉를
스크립트 외부 매개 변수를 정의하는 이유를 모르겠어요. 즉 불필요합니다. 콜백 함수가 자동으로 매개 변수로 반환 데이터로 호출됩니다. 성공 외부에서 콜백을 정의하는 것은 매우 가능하다 : 즉를
function getData() { $.ajax({ url : 'example.com', type: 'GET', success : handleData }) } function handleData(data) { alert(data); //do some stuff }
handleData 함수가 호출하고 매개 변수는 아약스 함수에 전달됩니다.
-
4.당신의 성공 핸들러를 다시 작성하십시오 :
당신의 성공 핸들러를 다시 작성하십시오 :
success : handleData
아약스 방법의 성공 속성은 함수에 대한 참조를 필요로한다.
당신의 handleData 기능에서는 3 개 개의 매개 변수까지 걸릴 수 있습니다 :
object data string textStatus jqXHR jqXHR
-
5.내가 작성합니다 :
내가 작성합니다 :
var handleData = function (data) { alert(data); //do some stuff } function getData() { $.ajax({ url : 'example.com', type: 'GET', success : handleData }) }
-
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.당신은 변수를 선언 할 필요가 없습니다. 아약스 성공 기능이 자동으로 3 개의 매개 변수를 취 기능 (Object 데이터, 문자열 textStatus, jqXHR jqXHR)
당신은 변수를 선언 할 필요가 없습니다. 아약스 성공 기능이 자동으로 3 개의 매개 변수를 취 기능 (Object 데이터, 문자열 textStatus, jqXHR jqXHR)
-
8.구성 요소 즉 각 JS 코드에서 :
구성 요소 즉 각 JS 코드에서 :
function getData(){ window.location.href = 'http://localhost:1036/api/Employee/GetExcelData'; }
from https://stackoverflow.com/questions/14754619/jquery-ajax-success-callback-function-definition by cc-by-sa and MIT license
'JQUERY' 카테고리의 다른 글
[JQUERY] 어떻게 jQuery를 사용하여 클라이언트의 클립 보드에 텍스트를 복사하려면? [복제] (0) | 2020.10.09 |
---|---|
[JQUERY] 어떻게 양식을하지 않고 ASP.NET MVC 컨트롤러에 문자열의 배열을 게시 할 수 있습니까? (0) | 2020.10.09 |
[JQUERY] jQuery를 체크 박스 변화와 클릭 이벤트 (0) | 2020.10.08 |
[JQUERY] 크로스 브라우저 창 크기 조정 이벤트 - 자바 스크립트 / jQuery를 (0) | 2020.10.08 |
[JQUERY] 방향 지시의 사용자 조언 세로 디스플레이 경고 메시지 인 경우, 뷰포트 방향을 감지 (0) | 2020.10.08 |