Latest web development tutorials

XML의 DOM은 - HttpRequest에이 개체

XMLHttpRequest 객체를 통해, 사용자는 전체 페이지를 재로드하지 않고도 웹 페이지의 일부분을 업데이트 할 수있다.


XMLHttpRequest 객체

XMLHttpRequest 객체는 뒤에서 서버와 데이터를 교환하기 위해 사용된다.

당신이 할 수 있기 때문에 XMLHttpRequest객체는 개발자의 꿈이다 :

  • 페이지를 다시로드하지 않고 웹 페이지를 업데이트
  • 페이지는 서버 요청 데이터로부터로드되면
  • 페이지가로드 된 이후의 데이터는 서버로부터 수신
  • 백그라운드에서 서버로 데이터를 전송

XMLHttpRequest 객체를 생성

모든 최신 브라우저 (IE7 +, 파이어 폭스, 크롬, 사파리와 오페라) 내장 XMLHttpRequest를 목적으로한다.

XMLHttpRequest 객체 구문을 만들기

xmlhttp=new XMLHttpRequest();

ActiveX 개체를 사용하여 인터넷 익스플로러 (IE5와 IE6)의 이전 버전 :

xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");

IE5와 IE6를 포함한 모든 현대적인 브라우저를 처리하기 위해 브라우저가 XMLHttpRequest 객체를 지원하는지 여부를 확인하시기 바랍니다. 그렇다면, 그렇지 않은 경우, XMLHttpRequest를 객체를 생성하는 ActiveX 객체를 생성 :

if (window.XMLHttpRequest)
{// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
}
else
{// code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}

»시도


서버에 대한 요청을 보낼

서버에 요청을 전송하기 위해, 우리는 XMLHttpRequest 객체의 open () 및 () 메소드를 전송을 사용

xmlhttp.open("GET","xmlhttp_info.txt",true);
xmlhttp.send();

方法 描述
open(method,url,async) 规定请求的类型,URL,请求是否应该进行异步处理。

method:请求的类型:GET 或 POST
url:文件在服务器上的位置
async:true(异步)或 false(同步)
send(string) 发送请求到服务器。

string:仅用于 POST 请求


GET 또는 POST?

POST보다 간단하고 빠른 GET 대부분의 경우에 사용될 수있다.

그러나, 항상 다음과 같은 경우 POST 요청을 사용 :

  • 캐시 파일 (업데이트 서버 나 데이터베이스 파일) 옵션을 선택하지 않습니다
  • 서버에 전송 된 데이터의 양 (크기 제한을 POST 없음) 큰
  • 보내는 사용자 입력 (알 수없는 문자를 포함 할 수 있습니다), POST 강하고 GET보다 더 안전

URL - 서버의 파일

URL 인수 open () 메서드는 서버에있는 파일의 주소입니다 :

xmlhttp.open("GET","xmlhttp_info.txt",true);

이 파일 (예 : .txt 및 .XML 등) 파일의 모든 유형이 될 수 있습니다, 또는 서버 스크립트 파일 (예 : .html 중에서 및 .php가 등은 응답을 전송하기 전에 서버에서 작업을 수행 할 수 있습니다).


비동기 - 참 또는 거짓?

비동기 전송 요청에 대해 비동기 인수 open () 메서드가 true로 설정해야합니다 :

xmlhttp.open("GET","xmlhttp_info.txt",true);

웹 개발자를위한 비동기 요청을 보내기 앞으로 큰 단계입니다. 수행 할 수있는 서버에서 많은 작업은 매우 많은 시간이 소요됩니다.

비동기 전송을 통해, JavaScript는 서버의 응답을 기다릴 필요가 없지만, 대신 할 수있다 :

  • 서버에서 응답을 기다리는 동안, 추가 스크립트를 실행합니다
  • 상기 응답을 처리 할 준비가 될 때의 응답

비동기 사실 =

비동기 = TRUE를 사용 준비가되면 소정의 기능을 onreadystatechange 이벤트에 응답하여 실행될 때

xmlhttp.onreadystatechange=function()
{
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
document.getElementById("myDiv").innerHTML=xmlhttp.responseText;
}
}
xmlhttp.open("GET","xmlhttp_info.txt",true);
xmlhttp.send();

»시도


비동기 거짓 =

세 번째 매개 변수 비동기의 경우 = 거짓, () 메소드가 false 오픈을 변경 :

xmlhttp.open("GET","xmlhttp_info.txt",false);

= false를 비동기 권장하지만, 경우는 여러 개의 작은 요청이나 캔을 처리하지 않습니다.

당신이 준비가 될 때까지 서버 응답에서 자바 스크립트가 계속되지 않습니다 기억하십시오. 서버가 바쁘거나 느린 경우, 애플리케이션은 정지되거나 중단된다.

참고 : 비동기를 사용하는 경우 = 인 onreadystatechange 함수 거짓 쓰지 않는다 - 단지에) (송신 후 문을 코드를 삽입 할 필요를 :

xmlhttp.open("GET","xmlhttp_info.txt",false);
xmlhttp.send();
document.getElementById("myDiv").innerHTML=xmlhttp.responseText;

»시도


서버 응답

서버의 응답을 얻기 위해, XMLHttpRequest 객체의에서 responseText 또는 responseXML에 속성을 사용합니다.

属性 描述
responseText 获取响应数据作为字符串
responseXML 获取响应数据作为 XML 数据


responseText 속성

서버에서 응답이 XML이 아닌 경우, responseText 속성을 사용하십시오.

에서 responseText 속성은 문자열로 응답을 반환, 당신은 그것을 따라 사용할 수 있습니다 :

document.getElementById("myDiv").innerHTML=xmlhttp.responseText;

»시도


responseXML에 등록

응답이 서버에서 XML하지 않고, 당신이 XML 객체에를 해결하려면, responseXML에 속성을 사용 :

파일 요청 cd_catalog.xml을 하고 응답을 구문 분석 :

xmlDoc=xmlhttp.responseXML;
var txt="";
x=xmlDoc.getElementsByTagName("ARTIST");
for (i=0;i<x.length;i++)
{
txt=txt + x[i].childNodes[0].nodeValue + "
";
}
document.getElementById("myDiv").innerHTML=txt;

»시도


인 onreadystatechange 이벤트

요청이 서버로 전송 될 때, 우리는 응답에 기초하여 어떤 동작을 수행 할 필요가있다.

인 onreadystatechange 이벤트가 될 때마다 readyState의 변화를 트리거됩니다.

XMLHttpRequest의 readyState의 속성은 상태를 보유하고있다.

XMLHttpRequest 객체의 세 가지 중요한 특성 :

属性 描述
onreadystatechange 存储函数(或函数的名称)在每次 readyState 属性变化时被自动调用
readyState 存放了 XMLHttpRequest 的状态。从 0 到 4 变化:
0:请求未初始化
1:服务器建立连接
2:收到的请求
3:处理请求
4:请求完成和响应准备就绪
status 200:"OK"
404:找不到页面

인 onreadystatechange 경우, 우리는 시간이 서버 응답을 처리 할 준비가되면 무슨 일이 일어날 지 지정합니다.

readyState가 4 상태 또는 200 인 경우, 반응은 제조 :

xmlhttp.onreadystatechange=function()
{
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
document.getElementById("myDiv").innerHTML=xmlhttp.responseText;
}
}

»시도

참고 : 인 onreadystatechange 이벤트마다에게 readyState의 변화를 유발 네 번 총 트리거됩니다.


예를들

더 많은 예제

getAllResponseHeaders () 헤더 정보를 검색하여
자원 (문서) 헤더 정보를 검색 할 수 있습니다.

() 지정된 헤더 정보를 검색 getResponseHeader
헤더 정보를 지정하는 자원 (파일)을 검색 할 수 있습니다.

콘텐츠 검색 ASP 파일
사용자가 웹 페이지를 웹 서버와 통신하는 방법 입력 필드에 문자를 입력 할 때.

데이터베이스에서 콘텐츠를 검색
웹 페이지에서는 XMLHttpRequest 객체를 통해 데이터베이스에서 정보를 추출합니다.

컨텐츠 검색 용 XML 파일
XML 파일로부터 데이터를 검색하고 HTML 테이블의 데이터를 표시하는 XMLHttpRequest 객체를 생성한다.