Ajax 컨트롤 과 라 이브 러 리 요약

8554 단어 Ajax
2006 - 04 - 03 15: 52 저자: Kris Hadloc 출처: IT 전문가 망
사용자 의 상호작용 (interaction) 이 웹 사 이 트 를 구동 하고 있 습 니 다.응답 정 보 를 어떻게 처리 하 는 지, 특히 새로운 상호작용 형식 (예 를 들 어 AJAX) 을 사용 할 때 이 점 은 매우 중요 하 다.Kris Hadloc 는 AJAX 요청 - 응답 과정의 본질 을 설 명 했 습 니 다. 이러한 내용 을 이해 하고 사용자 에 게 상호작용 서 비 스 를 잘 해 야 합 니 다.요청 과 응답 AJAX 엔진 은 여러 가지 로 나 뉘 어 모든 면 에서 중요 하 다.엔진 이 요청 과 응답 정 보 를 보 내 는 업 무 를 수행 하면 응답 정 보 를 처리 하 는 방법 이 많다.응답 정 보 는 처리 과정 에서 중요 한 부분 으로 사용자 가 최종 적 으로 응답 정보 와 상호작용 을 하기 때문이다.본 고 는 AJAX 응답 정 보 를 어떻게 처리 하고 사용자 에 게 피드백 정 보 를 제공 하 며 필요 에 따라 업데이트 하 는 지 상세 하 게 설명 했다.저 희 는 요청 한 준비 상태 부터 시작 하여 응답 정보의 상태, 반전 (callback) 과 응답 정 보 를 분석 합 니 다.본 고 는 메시지 불 러 오기, 오류 처리, 응답 정보 표시 등 응답 정보의 다른 측면 도 설명 했다.나 는 모두 가 다운로드 할 수 있 도록 예 시 를 만 들 었 다.이 예제 에는 대상 을 대상 으로 하 는 AJAX 엔진 이 포함 되 어 있 으 며, 모든 AJAX 응용 프로그램 에서 다시 사용 할 수 있 습 니 다.응답 메 시 지 를 논의 하기 전에 AJAX 엔진 을 만 들 고 요청 하 는 방법 을 알려 드 리 겠 습 니 다.우선, AJAX 엔진 의 코드 를 살 펴 보 겠 습 니 다.

                        

document.write("");

function Ajax()

{

 this.toString = function() { return "Ajax"; }

 this.http = new HTTP();

 this.makeRequest = function(_method, _url, _callbackMethod)

 {

this.request = (window.XMLHttpRequest)?

new XMLHttpRequest(): new ActiveXObject("MSXML2.XMLHTTP");

this.request.onreadystatechange = _callbackMethod;

this.request.open(_method, _url, true);

this.request.send(_url);

 }

}


이 대상 을 만 들 고 요청 을 하기 위해 서 는 다음 두 줄 의 코드 만 사용 하 십시오.
var ajax = new Ajax();

ajax.makeRequest('GET', 'xml/content.xml', onResponse);

 


위의 두 번 째 줄 코드 는 당신 이 선택 한 요청 방법, XML 의 경로 나 요청 한 서버 쪽 스 크 립 트, 응답 정 보 를 받 았 을 때 호출 하고 자 하 는 리 셋 방법 을 반영 합 니 다.이제 AJAX 엔진 과 요청 을 어떻게 하 는 지 에 대해 어느 정도 알 고 있 습 니 다. 요청 을 어떻게 처리 하 는 지 알 아 보 겠 습 니 다.준비 (Ready) 상태 준비 상 태 는 리 셋 방법 으로 처리 합 니 다. 우리 가 요청 을 했 을 때 리 셋 방법 은 이미 설정 되 어 있 습 니 다.예 를 들 어 onResponse 는 리 셋 방법 으로 설정 되 어 있 으 며 본 고 에서 모든 분석 코드 를 처리 하 는 데 사 용 됩 니 다.우 리 는 다음 코드 를 사용 하여 리 셋 방법 중의 AJAX 대상 의 준비 상 태 를 검사 할 것 입 니 다.
function onResponse()

{

 if(ajax.checkReadyState('body', 'loading...', 'loading...', 'loading...') == "OK")

 {

//

 }

}

위의 코드 에 따 르 면, 우 리 는 checkReady State 방법 에 네 개의 인 자 를 전달 할 것 입 니 다.첫 번 째 매개 변 수 는 우리 가 표시 하고 자 하 는 로드 (loading) 메시지 div 의 ID 이 고, 다른 세 개의 매개 변 수 는 서로 다른 상태 에 대응 하 는 로드 메시지 입 니 다.내 가 선택 한 메 시 지 를 불 러 오 는 div 의 이름 은 body 입 니 다. 새 데 이 터 를 불 러 올 때 내용 과 불 러 오 는 메 시 지 를 합 친 것 입 니 다.다음은 실제 checkReady State 방법 입 니 다. 이것 은 우리 가 방금 토론 한 코드 를 처리 하고 div 에서 우리 에 게 전달 한 매개 변 수 를 표시 합 니 다.이 방법 도 예제 AJAX 엔진 에 포함 되 어 있다.

                        

this.checkReadyState = function(_id, _1, _2, _3)

{

 switch(this.request.readyState)

 {

case 1:

 document.getElementById(_id).innerHTML = _1;

 break;

case 2:

 document.getElementById(_id).innerHTML = _2;

 break;

case 3:

 document.getElementById(_id).innerHTML = _3;

 break;

case 4:

 document.getElementById(_id).innerHTML = "";

 return this.http.status(this.request.status);

 }

}


checkReady State 방법 은 사용자 에 게 페이지 상태의 피드백 정 보 를 제공 하 는 데 유용 합 니 다.다음 표 는 검 측 된 값 을 보 여 줍 니 다:
값.
상태.
0
초기 화 되 지 않 음 (초기 화 되 지 않 음)
1
로드 중 (불 러 오 는 중)
2
Loaded (불 러 왔 습 니 다)
3
대화 식 (대화 식)
4
완료 (완료)
모든 로 딩 상태 에 사용자 정의 메 시 지 를 추가 할 수 있 습 니 다. 간단 한 문자열 일 수도 있 고 문자열 형식의 그림 태그 일 수도 있 습 니 다. (예 를 들 어 애니메이션 로 딩 GIF 를 표시 합 니 다)다음은 하나의 예 이다.

                        

var loader = "〈IMG src="http://images.51cto.com/wuyou/images/loader.gif"〉";

ajax.checkReadyState('body', loader, loader, loader);


checkReady State 방법 으로 요청 상 태 를 처리 할 뿐만 아니 라 HTTP 대상 도 요청 상 태 를 감지 하고 되 돌려 줍 니 다.사용자 의 상호작용 (interaction) 이 웹 사 이 트 를 구동 하고 있 습 니 다.응답 정 보 를 어떻게 처리 하 는 지, 특히 새로운 상호작용 형식 (예 를 들 어 AJAX) 을 사용 할 때 이 점 은 매우 중요 하 다.Kris Hadloc 는 AJAX 요청 - 응답 과정의 본질 을 설 명 했 습 니 다. 이러한 내용 을 이해 하고 사용자 에 게 상호작용 서 비 스 를 잘 해 야 합 니 다.요청 과 응답 AJAX 엔진 은 여러 가지 로 나 뉘 어 모든 면 에서 중요 하 다.엔진 이 요청 과 응답 정 보 를 보 내 는 업 무 를 수행 하면 응답 정 보 를 처리 하 는 방법 이 많다.응답 정 보 는 처리 과정 에서 중요 한 부분 으로 사용자 가 최종 적 으로 응답 정보 와 상호작용 을 하기 때문이다.본 고 는 AJAX 응답 정 보 를 어떻게 처리 하고 사용자 에 게 피드백 정 보 를 제공 하 며 필요 에 따라 업데이트 하 는 지 상세 하 게 설명 했다.저 희 는 요청 한 준비 상태 부터 시작 하여 응답 정보의 상태, 반전 (callback) 과 응답 정 보 를 분석 합 니 다.본 고 는 메시지 불 러 오기, 오류 처리, 응답 정보 표시 등 응답 정보의 다른 측면 도 설명 했다.나 는 모두 가 다운로드 할 수 있 도록 예 시 를 만 들 었 다.이 예제 에는 대상 을 대상 으로 하 는 AJAX 엔진 이 포함 되 어 있 으 며, 모든 AJAX 응용 프로그램 에서 다시 사용 할 수 있 습 니 다.응답 메 시 지 를 논의 하기 전에 AJAX 엔진 을 만 들 고 요청 하 는 방법 을 알려 드 리 겠 습 니 다.우선, AJAX 엔진 의 코드 를 살 펴 보 겠 습 니 다.

                        

document.write("src=\"js/HTTP.js\">>");

function Ajax()

{

 this.toString = function() { return "Ajax"; }

 this.http = new HTTP();

 this.makeRequest = function(_method, _url, _callbackMethod)

 {

this.request = (window.XMLHttpRequest)? new XMLHttpRequest():

new ActiveXObject("MSXML2.XMLHTTP");

this.request.onreadystatechange = _callbackMethod;

this.request.open(_method, _url, true);

this.request.send(_url);

 }

}


이 대상 을 만 들 고 요청 을 하기 위해 서 는 다음 두 줄 의 코드 만 사용 하 십시오.

                        

var ajax = new Ajax();

ajax.makeRequest('GET', 'xml/content.xml', onResponse);


위의 두 번 째 줄 코드 는 당신 이 선택 한 요청 방법, XML 의 경로 나 요청 한 서버 쪽 스 크 립 트, 응답 정 보 를 받 았 을 때 호출 하고 자 하 는 리 셋 방법 을 반영 합 니 다.이제 AJAX 엔진 과 요청 을 어떻게 하 는 지 에 대해 어느 정도 알 고 있 습 니 다. 요청 을 어떻게 처리 하 는 지 알 아 보 겠 습 니 다.준비 (Ready) 상태 준비 상 태 는 리 셋 방법 으로 처리 합 니 다. 우리 가 요청 을 했 을 때 리 셋 방법 은 이미 설정 되 어 있 습 니 다.예 를 들 어 onResponse 는 리 셋 방법 으로 설정 되 어 있 으 며 본 고 에서 모든 분석 코드 를 처리 하 는 데 사 용 됩 니 다.우 리 는 다음 코드 를 사용 하여 리 셋 방법 중의 AJAX 대상 의 준비 상 태 를 검사 할 것 입 니 다.

                        

function onResponse()

{

 if(ajax.checkReadyState('body', 'loading...', 'loading...', 'loading...') == "OK")

 {

//

 }

}


위의 코드 에 따 르 면, 우 리 는 checkReady State 방법 에 네 개의 인 자 를 전달 할 것 입 니 다.첫 번 째 매개 변 수 는 우리 가 표시 하고 자 하 는 로드 (loading) 메시지 div 의 ID 이 고, 다른 세 개의 매개 변 수 는 서로 다른 상태 에 대응 하 는 로드 메시지 입 니 다.내 가 선택 한 메 시 지 를 불 러 오 는 div 의 이름 은 body 입 니 다. 새 데 이 터 를 불 러 올 때 내용 과 불 러 오 는 메 시 지 를 합 친 것 입 니 다.다음은 실제 checkReady State 방법 입 니 다. 이것 은 우리 가 방금 토론 한 코드 를 처리 하고 div 에서 우리 에 게 전달 한 매개 변 수 를 표시 합 니 다.이 방법 도 예제 AJAX 엔진 에 포함 되 어 있다.

                        

this.checkReadyState = function(_id, _1, _2, _3)

{

 switch(this.request.readyState)

 {

case 1:

 document.getElementById(_id).innerHTML = _1;

 break;

case 2:

 document.getElementById(_id).innerHTML = _2;

 break;

case 3:

 document.getElementById(_id).innerHTML = _3;

 break;

case 4:

 document.getElementById(_id).innerHTML = "";

 return this.http.status(this.request.status);

 }

}


checkReady State 방법 은 사용자 에 게 페이지 상태의 피드백 정 보 를 제공 하 는 데 유용 합 니 다.다음 표 는 검 측 된 값 을 보 여 줍 니 다:
값.
상태.
0
초기 화 되 지 않 음 (초기 화 되 지 않 음)
1
로드 중 (불 러 오 는 중)
2
Loaded (불 러 왔 습 니 다)
3
대화 식 (대화 식)
4
완료 (완료)
모든 로 딩 상태 에 사용자 정의 메 시 지 를 추가 할 수 있 습 니 다. 간단 한 문자열 일 수도 있 고 문자열 형식의 그림 태그 일 수도 있 습 니 다. (예 를 들 어 애니메이션 로 딩 GIF 를 표시 합 니 다)다음은 하나의 예 이다.

                        

var loader = "〈IMG src="http://images.51cto.com/wuyou/images/loader.gif"〉";

ajax.checkReadyState('body', loader, loader, loader);


checkReady State 방법 으로 요청 상 태 를 처리 할 뿐만 아니 라 HTTP 대상 도 요청 상 태 를 감지 하고 되 돌려 줍 니 다.

좋은 웹페이지 즐겨찾기