prototype_동기화 요청 및 콜백 함수
3420 단어 prototype
/*************** prototype ********************/
var Transfer={}
Transfer.Base = function() {}
Transfer.Base.prototype = {
setOptions: function(options) {
if(typeof options!="object"){options={};}
this.options = {
bCache:options.bCache||false,
id:options.id||"scriptTemp",
onfailure:options.onfailure||function(){},
oncomplate:options.oncomplate||function(){}
}
}
}
var Class = {
create: function() {
return function() {
this.initialize.apply(this, arguments);
}
}
}
Object.extend = function(destination, source) {
for (var property in source) {
destination[property] = source[property];
}
return destination;
}
/**
new Transfer.Request(url,{oncomplate:'',id:''})
*/
Transfer.Request=Class.create();
Transfer.Request.prototype=Object.extend(new Transfer.Base(),{
initialize: function(url, options) {
this.setOptions(options);
this.request(url);
},
request:function(url){
this.url=url;
this.bCache=this.options.bCache;
this.id=this.options.id;
this.oncomplate=this.options.oncomplate;
this.onfailure=this.options.onfailure;
this.symbol="?";
if(this.url.indexOf("?")!="-1")this.symbol="&";
var head=document.getElementsByTagName("head")[0];
var sT = document.getElementById(this.id);
if(sT&&sT.src&&sT.src==this.url){
this.oncomplate();
return;
}
if (sT) {sT.parentNode.removeChild(sT);}
var s = document.createElement("script");
head.appendChild(s);
s.setAttribute("language", "javascript");
s.setAttribute("type", "text/javascript");
s.setAttribute("id", this.id);
s.setAttribute("src", (this.bCache && this.bCache == true) ? this.url + this.symbol + Math.random() : this.url);
var self=this;
s.onload=s.onreadystatechange=function()
{
if (typeof ActiveXObject!="undefined") {
if(s.readyState&&s.readyState=="loaded")self.oncomplate();
if(s.readyState&&s.readyState=="complete")return;
}else{
self.oncomplate();
}
}
s.onerror=function(){ //ie not work
s.parentNode.removeChild(s);
self.onfailure();
throw new Error("some error occurd,please try again later");
}
}
});
/********************************************/
:
new Transfer.Request("./decode.jsp?timestamp="+new Date().getTime()+""+parseInt(Math.random()*1000),{oncomplate:getLatlonCallback,id:'getLatlonCallback',bCache:true});
:
new Transfer.Request(url,{oncomplate:function(){getAreaList(city[0]);},id:"areabycity_1",bCache:true});
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
기능 재검토(프로토타입 아님) 🤥빠른 수정을 위한 몇 가지 참고 사항 사용자 지정 속성이 있는 함수 이것은 대부분의 경우 런타임 바인딩이므로 someKey는 aFunction 또는 aFunction.prototype의 속성이 아닙니다. 접두사 cu...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.