js 간단 하고 실 용적 인 AJAX 전체 인 스 턴 스 실현
// WUJXPING
//ajax 1.2
// 2012-2-20
//1、 get,post
//2、
//3、
//4、*** ,
//5、 this.e
//6、 ajax , ajax ,
//7、 XmlHttp
//8、 BUG, AJAX
//
ajax.prototype.ServerEven=function(Func){
this.callback=new delegate(Func);//
}
//
ajax.prototype.CreateXMLHttp=function(){
if(this.XmlHttp!=null && typeof this.XmlHttp == "object")
return this.XmlHttp;
xmlhttpObj = ["Microsoft.XmlHttp","MSXML2.XmlHttp.5.0","MSXML2.XmlHttp.4.0","MSXML2.XmlHttp.3.0","MSXML2.XmlHttp"];
// XMLHttpRequest
if(window.ActiveXObject){
for(i=0;i<xmlhttpObj.length;i++){ // ie
try{
this.XmlHttp = new ActiveXObject(xmlhttpObj[i]);
}catch(err){
continue;
}
if(this.XmlHttp)
break;
}
}
else if(window.XMLHttpRequest){
this.XmlHttp=new XMLHttpRequest();
}
return this.XmlHttp;
}
//
ajax.prototype.Send=function(){
if(this.isbusy)//ajax
return;
this.isbusy=true;
var xmlhtml=this.CreateXMLHttp(); //
if(xmlhtml==null){
this.isbusy=false
if(this.callback!=null)
this.callback.run("XMLHttpRequest Create Faild!",this.e);
return;
}
var url=this.url;
var _this=this;
//
if (url.indexOf("?") > 0)
url += "&randnum=" + Math.random();
else
url += "?randnum=" + Math.random();
xmlhtml.open(this.method,url,this.async);
xmlhtml.setRequestHeader("Content-Type","application/x-www-form-urlencoded;charset=utf-8;");
xmlhtml.setRequestHeader("Cache-Control","no-cache");
xmlhtml.setRequestHeader("Connection","Keep-Alive");
//
var timer=setTimeout(function(){
//if(xmlhtml.readyState!=4){
xmlhtml.abort(); //
_this.isbusy=false;
if(_this.callback!=null)
_this.callback.run("send timeout!",_this.e);
clearTimeout(timer); //
},this.timeout);
if(this.async)//
xmlhtml.onreadystatechange=function(){//
if(xmlhtml.readyState==4){//
if(xmlhtml.status==200){ //
_this.isbusy=false;
clearTimeout(timer); //
if(_this.callback!=null)//
_this.callback.run(xmlhtml,_this.e);
}
}
};
try{
xmlhtml.send(this.option);
}catch(err){
this.isbusy=false
clearTimeout(timer); //
alert(err);
return;
}
if(!this.async){//
this.isbusy=false;
clearTimeout(timer); //
if(this.callback!=null)
this.callback.run(xmlhtml,this.e);
}
}
// ajax
function ajax(url){
this.method="post";//
this.async=true;//
this.option=""; //
this.url=url;// Url
this.timeout=1000*60*1;// 1
this.e=null;//
this.XmlHttp=null;//
this.isbusy=false// ajax
this.callback=null;//
//
delegate=function (func){
this.arr = new Array(); //
this.add = function(func){
this.arr[this.arr.length] = func;
};
this.run = function(sender,e){
for(var i=0;i<this.arr.length;i++){
var func = this.arr[i];
if(typeof func == "function"){
func(sender,e); //
}
}
}
this.add(func);
}
}
ajax 관련 내용 에 관심 이 있 는 독자 들 은 본 사이트 의 주 제 를 볼 수 있 습 니 다.과 을 볼 수 있 습 니 다.본 논문 에서 말 한 것 이 여러분 의 ajax 프로 그래 밍 에 도움 이 되 기 를 바 랍 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
[2022.04.19] 자바스크립트 this - 생성자 함수와 이벤트리스너에서의 this18일에 this에 대해 공부하면서 적었던 일반적인 함수나 객체에서의 this가 아닌 오늘은 이벤트리스너와 생성자 함수 안에서의 this를 살펴보기로 했다. new 키워드를 붙여 함수를 생성자로 사용할 때 this는...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.