Ajax 자체는 기술이 아니지만 2005년 Jesse James Garrett이 개척했으며 HTML 또는 XHTML, Cascading Style Sheets, JavaScript, Document Object Model, XML을 포함한 많은 기존 기술을 적용하는 "새로운" 방법으로 설명되었습니다. , XSLT, 그리고 가장 중요한 것은 XMLHttpRequest 객체입니다.
이러한 기술을 Ajax 모델에 결합하면 웹 앱은 전체 탐색 인터페이스를 새로 고치는 대신 사용자 인터페이스를 빠르고 점진적으로 업데이트할 수 있으므로 애플리케이션이 더 빨라지고 사용자 경험이 향상됩니다.
ajax에서 x는 xml을 의미하지만, 더 가볍고 javascript의 일부라는 장점 때문에 json이 더 많이 사용됩니다. ajax 모델의 json과 xml은 모두 데이터 정보를 패키지하는 데 사용됩니다.
AJAX란 무엇인가요?
AJAX는 Asynchronous JavaScript And XML의 약자입니다. 간단히 말해서 XMLHttpRequest객체를 사용하여 JSON, XML, HTML 및 텍스트 파일을 비롯한 다양한 방법으로 정보를 보내고 받을 수 있습니다. AJAX의 가장 매력적인 기능은 "비동기"입니다. 즉, 페이지를 새로 고치지 않고도 서버와 통신하고 데이터를 교환하여 페이지를 업데이트할 수 있습니다.
ajax의 두 가지 주요 기능:
페이지를 새로 고치지 않고 데이터 요청
서버에서 데이터 가져오기
1단계 – 요청 방법
서버를 요청하려면 자바스크립트를 사용하려면 필요한 기능을 갖춘 객체를 인스턴스화해야 합니다. 이것이 XMLHttpRequest의 출처입니다. 원래 Internet Explorer는 XMLHTTP라는 ActiveX 개체를 구현했습니다. 그 이후로 Mozilla, Safari 및 기타 브라우저 제조업체에서는 이 메서드와 Microsoft의 것과 유사한 ActiveX 개체 기능을 지원하기 위해 XMLHttpRequest 개체를 연속적으로 구현했습니다. 동시에 Microsoft는 XMLHttpRequest도 구현했습니다.
// 이전 호환성 코드는 더 이상 필요하지 않습니다.
if (window.window.ActiveXObject) { // IE 6 이하
httpRequest = new ActiveXObject("Microsoft.XMLHTTP");
}
참고: 위 코드는 설명용일 뿐이며 XMLHttp의 인스턴스만 생성합니다. 더 실제적인 예를 보려면 3단계로 건너뛸 수 있습니다.
요청 후 요청 결과를 받아야 합니다. 이 단계에서는 다음과 같이 onreadystatechangeproperty 메서드를 구성하여 응답 JavaScript 메서드를 처리하도록 XMLHttp 요청 개체에 지시해야 합니다.
httpRequest.onreadystatechange = nameOfTheFunction;
로그인 후 복사
로그인 후 복사
또는
<code>httpRequest.onreadystatechange = function(){<br> // Process the server response here.<br>};</code>
로그인 후 복사
응답을 수락하는 방법을 선언한 후 요청을 시작해야 합니다. HTTP 요청 객체를 호출하여 open() 및 send() 메소드는 다음과 같습니다:
<code>httpRequest.open('GET', 'http://www.example.org/some.file', true);<br>httpRequest.send();</code>
로그인 후 복사
open()의 첫 번째 매개변수는 HTTP 요청 메소드입니다 – GET, POST, HEAD 또는 서버에서 지원하는 기타 메소드 . 모두 대문자로 된 메소드 이름은 HTTP 표준입니다. 그렇지 않으면 일부 브라우저(예: Firefox)가 요청을 발행하지 않을 수 있습니다. http 요청 방법에 대한 자세한 내용을 보려면 W3C 사양을 클릭하세요.
두 번째 매개변수는 요청할 URL입니다. 보안상의 이유로 기본적으로 도메인 간 URL 요청을 할 수 없습니다. 모든 페이지가 동일한 도메인 이름 아래 있는지 확인하십시오. 그렇지 않으면 open() 메소드를 호출할 때 "권한 거부" 오류가 발생합니다. 일반적인 교차 도메인 문제는 웹 사이트의 도메인 이름이 domain.tld인데 www.domain.tld를 사용하여 페이지에 액세스하려고 하는 것입니다. 원본 간 요청을 실제로 수행하려면 HTTP 액세스 제어를 확인하세요.
선택적인 세 번째 매개변수는 이 요청이 동기인지 비동기인지를 설정합니다. true(기본값)이면 JavaScript가 계속 실행되며, 사용자가 페이지를 조작하는 동안 서버에서 데이터를 반환합니다. 이것이 바로 AJAX입니다.
-
send() 메소드의 매개변수는 서버(POST)로 전송하려는 모든 데이터가 될 수 있습니다. 양식 데이터는 쿼리 문자열:
"name=value&anothername="+encodeURIComponent(myVar)+"&so=on"
로그인 후 복사
또는 multipart/form-data, JSON, XML 등과 같은 기타 양식과 같이 서버가 구문 분석할 수 있는 형식이어야 합니다.
데이터를 POST하려면 요청의 MIME 유형을 설정해야 할 수도 있습니다. 예를 들어 양식 데이터를 쿼리 데이터로 보내기 위해 send()를 호출하기 전에 다음 코드를 삽입합니다.
httpRequest.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
로그인 후 복사
2단계 – 서버 응답
요청을 처리할 때 응답을 처리하기 위한 JavaScript 메서드를 제공했습니다.
httpRequest.onreadystatechange = nameOfTheFunction;
로그인 후 복사
로그인 후 복사
이 방법의 용도는 무엇인가요? 먼저 요청 상태를 확인해야 합니다. 값이 XMLHttpRequest.DONE(4)이면 모든 서버 응답이 수락되었음을 의미합니다.
<code>if (httpRequest.readyState === XMLHttpRequest.DONE) {<br> // Everything is good, the response was received.<br>} else {<br> // Not ready yet.<br>}</code>
로그인 후 복사
가능한 모든 ReadyState 값은 다음과 같이 XMLHTTPRequest.readyState에서 볼 수 있습니다.
또는 (execute request) ute4 (완료) 또는 (요청 완료 및 응답은 ReadyRequest 완료된 응답이 제자리에 있습니다)
위 내용은 아약스 란 무엇입니까? ajax에 대한 자세한 소개의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!