원본출처 : http://www.w3.org/TR/XMLHttpRequest/
그냥 XHR의 모든 것이 알고 싶었다.
그래야 괜한 상상력을 동원한 뻘짓을 안할 수 있을테니까.
사실은 XHR을 이용한 server push에 대한 고민을 했었기 때문이다.
XHR.send() 이후에 XHR.readyState가 4가 된 후 연결을 계속 유지한 채로 XHR.responseText를 잘라먹으면서
server push를 구현할 수 있을지 없을지가 궁금했었다.
(server script에서 비동기방식으로 필요할 때만 flush가 가능하고 flush할 때마다 readyState를 4로 만들 수 있다는 전제가 필요하다...)
아무것도 모른채 유아적인 상상력만 부풀려대는 내 자신이 부끄럽다...-_-;
interface XMLHttpRequest {
// event handler
attribute EventListener onreadystatechange;
// state
const unsigned short UNSENT = 0;
const unsigned short OPENED = 1;
const unsigned short HEADERS_RECEIVED = 2;
const unsigned short LOADING = 3;
const unsigned short DONE = 4;
readonly attribute unsigned short readyState;
// request
void open(in DOMString method, in DOMString url);
void open(in DOMString method, in DOMString url, in boolean async);
void open(in DOMString method, in DOMString url, in boolean async, in DOMString user);
void open(in DOMString method, in DOMString url, in boolean async, in DOMString user, in DOMString password);
void setRequestHeader(in DOMString header, in DOMSring value);
void send();
void send(in DOMString data);
void send(in Document data);
void abort();
// response
DOMString getAllResponseHeaders();
DOMString getResponseHeader(in DOMString header);
readonly attribute DOMString responseText;
readonly attribute Document responseXML;
readonly attribute unsigned short status;
readonly attribute DOMString statusText;
};
// event handler
attribute EventListener onreadystatechange;
// state
const unsigned short UNSENT = 0;
const unsigned short OPENED = 1;
const unsigned short HEADERS_RECEIVED = 2;
const unsigned short LOADING = 3;
const unsigned short DONE = 4;
readonly attribute unsigned short readyState;
// request
void open(in DOMString method, in DOMString url);
void open(in DOMString method, in DOMString url, in boolean async);
void open(in DOMString method, in DOMString url, in boolean async, in DOMString user);
void open(in DOMString method, in DOMString url, in boolean async, in DOMString user, in DOMString password);
void setRequestHeader(in DOMString header, in DOMSring value);
void send();
void send(in DOMString data);
void send(in Document data);
void abort();
// response
DOMString getAllResponseHeaders();
DOMString getResponseHeader(in DOMString header);
readonly attribute DOMString responseText;
readonly attribute Document responseXML;
readonly attribute unsigned short status;
readonly attribute DOMString statusText;
};
'JavaScript' 카테고리의 다른 글
[JavaScript] IE에서 META 태그 해석 전 스크립트 실행시 2번 실행됨 (0) | 2009.07.23 |
---|---|
[JavaScript] IE7 경고창 없이 창 닫기 (0) | 2009.07.14 |
[JavaScript] Long Polling (0) | 2009.07.04 |
[JavaScript] 팝업창 크기의 한계 (0) | 2009.07.02 |
[JavaScript] Event, Element, Handler (0) | 2009.07.01 |