한 줄 요약.
동기는 순차적인 진행, 비동기는 순차적이지 않은 진행.
일반적으로 프로그램은 소스코드의 순서대로 진행된다. 위에서 아래로. 좌에서 우로. 이를 동기화 방식이라 한다.
비동기는 '콜백'이란걸 두어 일단 진행은 하되 결과는 나중에 처리할 수 있게 하는 것이다.
직장에서도 일처리하는 방식을 순서대로 진행하다 하나가 막히면 더 이상 진행하지 못하는 사람이 있는 반면..
이것했다가 저것했다가 어떻게든 일이 돌아가게 하는 사람이 있다.
어느 사람이 더 유능할까?
막히지 않는다면 순서대로 일을 진행하는 사람이 더 유능할 것 같은데.
현실은 여러 변수상황이 놓여있으니 이것저것 하는 사람이 더 유능하게 평가받는게 현실이다. 맘처럼되는 세상이 어딨던가. ㅋ
Ajax에서는 기본적으로 비동기를 쓴다.
요청을 보내고 그에 대한 응답이 왔을 경우에 반응할 수 있도록 콜백을 등록한다. 그리고 실제 응답이 왔을 때 그 후의 로직이 실행되어진다.
var xmlhttp = new XMLHttpRequest();
xmlhttp.Open("GET", "/request.html", true);
// 콜백함수 등록
xmlhttp.onreadystatechage = function(){
if(xmlhttp.readyState == 4){
if(xmlhttp.status == 200){
handleResponse(xmlhttp.responseXML); // 응답을 통해 xml데이터를 수신
}
}
}
xmlhttp.send(null);
// 콜백함수 구현
function handleResponse(responseXML)
{
document.getElementById("div_result").innerHTML = responseXML.firstChildNodes.item(0).nodeValue;
}
'ETC' 카테고리의 다른 글
MongoDB 개요 (0) | 2013.08.18 |
---|---|
onCreate (0) | 2013.04.02 |
통기타관련 사이트 (0) | 2013.03.03 |
Subversion 왜 이리 말썽이냐. (0) | 2013.01.22 |
alert 창 한글깨짐 (0) | 2013.01.21 |