AJAX 의 원리-어떻게 비동기 와 부분 리 셋 을 할 수 있 습 니까?
자세 한 설명:
1. XML HttpRequest 는 서버 측 과 의 통신 을 담당 하 며 내부 에 중요 한 속성 이 많 습 니 다.ready Status=4,status=200 등 입 니 다.XML HttpRequest 의 전체 상태 가 완료 되 었 음 을 보증 합 니 다(ready Status=4).즉,데이터 가 전송 되 었 습 니 다.그 다음 에 서버 설정 에 따라 문의(클 라 이언 트 가 서버 의 반환 상 태 를 문의 하 는 것 과 유사 하 며 http 짧 은 연결 입 니 다.긴 연결 이 아 닌 서버 엔 드 push)요청 상태 입 니 다.모든 것 이 준비 되 었 다 면(status=200)필요 한 작업 을 수행 합 니 다.
조작 은 일반적으로 DOM 을 직접 조작 하기 때문에 AJAX 는 이른바'리 셋 없 음'사용자 체험 을 할 수 있다.
document.getElementById("user1").innerHTML = " ...";
if (xmlhttp.status == 200) {
document.write(xmlhttp.responseText);
}
2. 그럼 AJAX 클 라 이언 트 에서 어떻게 비동기 화 를 했 나 요?실제로 자 바스 크 립 트 의 리 셋 함수 가 하 는 역할 입 니 다.서버 응답 이 사용 가능 하면 이 함수 가 실 행 됩 니 다.
업무 함수:
function castVote(rank) {
var url = "/ajax-demo/static-article-ranking.html";
var callback = processAjaxResponse;
executeXhr(callback, url);
}
:
function executeXhr(callback, url) {
// branch for native XMLHttpRequest object
if (window.XMLHttpRequest) {
req = new XMLHttpRequest();
req.onreadystatechange = callback;
req.open("GET", url, true);
req.send()(null);
} // branch for IE/Windows ActiveX version
else if (window.ActiveXObject) {
req = new ActiveXObject("Microsoft.XMLHTTP");
if (req) {
req.onreadystatechange = callback;
req.open("GET", url, true);
req.send()();
}
}
}
req.onreadystatechange = callback
req.open("GET", url, true)
첫 번 째 줄 은 자 바스 크 립 트 리 셋 함 수 를 정 의 했 습 니 다.응답 이 완료 되면 자동 으로 실 행 됩 니 다.req.open()방법 에서 지정 한"true"로 고 는 이 요청 을 다른 단계 로 실행 하려 는 것 을 설명 합 니 다.서버 가 XmlHttpRequest 를 처리 하고 브 라 우 저 에 되 돌아 오 면 req.onreadystatechange 가 지정 한 리 셋 방법 을 사용 하면 자동 으로 호출 됩 니 다.
리 셋 함수:
function processAjaxResponse() {
if (req.readyState == 4) {
// only if "OK"
if (req.status == 200) {
document.getElementById("user1").innerHTML = req.responseText;
} else {
alert("There was a problem retrieving the XML data:
" + req.statusText);
}
}
}
이상 의 이 AJAX 의 원 리 는 비동기 와 부분 리 셋[실현 코드]을 어떻게 하 는 지 하 는 것 이 바로 편집장 이 여러분 에 게 공유 한 모든 내용 입 니 다.여러분 에 게 참고 가 되 고 많은 응원 을 바 랍 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
AJAX의 도메인 간 액세스 - 두 가지 효과적인 해결 방법 소개새로운 W3C 정책은 HTTP 크로스 도메인 접근을 실현했고 제가 오랫동안 이 문제를 해결한 덕분입니다. servlet에서 되돌아오는 머리 정보에 Access-Control-Allow-Origin을 추가하면 됩니다....
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.