2014-03-25 3 views
0

저는 제 질문과 관련이없는 동적 인 내용을 얻을 응용 프로그램을 개발 중입니다. 질문은변수에서 잃어버린 jquery - 범위

var pat; 
$.post('venki/path.jsp', { nam:nam } , function(data) { 
    pat=data; 
    alert(pat); //it will displayed the received code form path.jsp 
}); 
alert(pat);// it will not keep the data received from path.jsp 

지금은 범위를 잃지 않아야합니다. 예를 들어

:

var pat=0; 

$.post(
    pat = 1  
); 

alert(pat); 

은 1 경고한다 아니라 자바

O를 난 정적 사용해야한다. jquery, 정적 변수를 선언하는 방법.

답변 : 간단하고 매우 유용하며 동기에 대해 걱정할 필요가 없습니다. 대답은

+1

의 또 다른 중복 [AJAX를 호출의 응답을 반환하는 방법?] (http://stackoverflow.com/questions/14220321/how- to-return-from-a-ajax-call) – Quentin

+2

이것은 타이밍과 관련하여 할 일과 범위에 대해 할 일이 전혀 없습니다. 비동기 자바 스크립트와 XML은 ** 비동기 ** – Quentin

답변

4

팻 값을 경고 할 때 게시물 요청이 완료되지 않았기 때문입니다. 수정이 값을 보장하기 위해, 포스트 성공 함수 내에서이를 경고 :

var pat; 
$.post('venki/path.jsp', { nam:nam } , function(data) { 
    pat=data; 
    alert(pat); //modified value 
    }); 
+0

예, 우리가 scode..i를 제공하면 확실하게 작동합니다. 다른 용도로 내 프로젝트 내에서 변수 값을 사용해야합니다 ... 어떤 생각입니까? – itsme

+1

setTimeout 다른 접근법이지만 요청 완료 시간을 예측할 수 없기 때문에 사용하지 말라고 제안합니다. 요청 완료에 필요한 시간은 많은 요소 라이브 서버로드, 연결 속도 등에 따라 달라집니다. –

+2

비동기 호출이 완료되면 데이터를 다른 함수로 전달하고 사용합니까? – user1329482