완전한 ajax 패키지
4186 단어 JavaScriptAjax
XML:모든 브 라 우 저 는 네 이 티 브 XML 문서 처 리 를 지원 하 며,자동 으로 사용 가능 한 DOM 문서 로 변환 합 니 다.
HTML:XML 문서 와 의 차 이 는 보통 일반 텍스트 문자열 로 존재 하 며 HTML 세 션 을 저장 하 는 것 입 니 다.
Javscript/JSon:이것 은 두 가지 형식 인 원시 실행 가능 한 javascript 코드 와 JSon(javascript object Notation,Javascript 대상 표시)형식 을 포함한다.
HTTP 응답 데 이 터 를 가 져 오 는 중점 은 XML HTTP Request 대상 의 두 속성 입 니 다.
responseXML:서버 가 XML 문 서 를 되 돌려 준다 면 이 속성 은 미리 처 리 된 DOM 문서 의 인용 을 포함 하고 XML 문서 의 표현 입 니 다.서버 에서 만 그 내용 의 첫 번 째 부분(content header)을'content-
type:text/xml"또는 XML 과 유사 한 데이터 형식 일 때 만 유효 합 니 다.
responseText:이 속성 은 서버 가 되 돌아 오 는 원본 텍스트 데이터 의 인용 을 포함 합 니 다.HTML 과 자바 script 형식의 데 이 터 는 모두 이 방법 에 의존 하여 얻 을 수 있 습 니 다.
/**
* :
*1、 : , 。 200-300
*2、 :'Not Modified( )' , 304。
* , 。 ,
*3、 : Ajax , web , ,
* 。 ,
*4、Safari : ,Safari 'undefined'
*/
if(typeof XMLHttpRequest == 'undefined')
XMLHttpRequest = function(){
return new ActiveObject(navigator.userAgent.indexOf("MSIE 5")>=0?"Microsoft.XMLHTTP":"Msxml2.XMLHTTP");
};
function ajax(options){
// Ajax
// ,
options={
//HTTP
type:options.type||"POST",
// URL
url:options.url || "",
//
timeout:options.timeout ||5000,
// 、 ( )
onComplete:options.onComplete || function(){},
onFail:options.onFail || function(){},
onSuccess:options.onSuccess || function(){},
// ,
data:options.data || ""
};
//
//var xml = new XMLHttpRequest();
var xml=createXMLHttpRequest();
//
xml.open(options.type,options.url,true);
// 5 ,
var timeoutLength=options.timeout;
//
var requestDone = false;
// 5 , ( )
setTimeout(function(){
requestDone=true;
},timeoutLength);
//
xml.onreadystatuschange = function(){
// , ,
if(xml.readyState == 4 && !requestDone){
//
if(httpSuccess(xml)){
//
options.onSuccess(httpData(xml,options.type));
// ,
}else{
options.onFail();
};
//
options.onComplete();
// ,
xml=null;
};
};
//
xml.send();
// HTTP
function httpSuccess(r){
try{
// , ,
return !r.status&&location.protocol=='file:'||
// 200 300
(r.status>=200&& r.status<300)||
//
r.status==304||
//Safari
navigator.userAgent.indexOf('Safari')>=0&&typeof r.status =='undefined';
}catch(e){
// ,
return false;
}
};
// HTTP
// : XMLHttpRequest ----
// :xml,script,text html -- '', content-type
function httpData(r,type){
// content-type
var ct = r.getResponseHeader("content-type");
// , XML
var data= !type && ct && ct.indexOf("xml")>=0;
// , XML ,
data = type=="xml" || data?r.resonpseXML:r.responseText;
// "script", javascript
if(type=="script"){
eval.call(window,data);
};
// ( XML )
return data;
};
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
기초 정리 - 1문자 (String) 숫자 (Number) 불린 (Boolean) null undefined 심볼 (Symbol) 큰정수 (BigInt) 따옴표로 묶어 있어야 함 Not-A-Number - 숫자 데이터 / 숫자로 표...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.