jsonp 호출을 복제하기 위해 자체 맞춤 라이브러리를 사용하고 있습니다. 사람들이 JQuery 나 다른 라이브러리를 사용하기 전에 몇 가지 제약으로 인해 사용할 수 없다고 말해 보겠습니다. 이 JavaScript 스크립트 동적 스크립트 로딩 IE6 문제
BurrpJsonAjaxRequest.prototype.send = function() {
this.script = document.createElement("script");
this.script.type = "text/javascript";
this.script.charset = "UTF-8";
this.script.src = this.URL;
if (typeof(this.callBack) == "function") {
this.script.callback = this.callBack;
}
var currRequest = this;
//sleep(100);
if (this.script.src.readyState) { //IE
this.script.src.onreadystatechange = function() {
if (this.script.src.readyState == "loaded" ||
this.script.src.readyState == "complete") {
this.script.src.onreadystatechange = null;
currRequest.hideLoading();
currRequest.callback();
}
};
} else { //Others
this.script.src.onload = function() {
currRequest.hideLoading();
currRequest.callback();
};
}
this.docHead.appendChild(this.script);
};
이 그것을 실행 처음 작동 : 아래
는 요청을하는 데 사용되는 코드입니다. 후속 실행에서는 요청이 만들어 지지만 콜백은 실행되지 않습니다.아래와 같이 sleep 메소드 (코드에 주석 처리 됨)를 사용하면 후속 호출에서도 콜백이 실행됩니다.
function sleep(milliseconds) {
var start = new Date().getTime();
for (var i = 0; i milliseconds){
break;
}
}
}
수면은 콜백 실행에 어떤 영향을 줍니까? Firefox에서 잘 작동합니다.
저는 이것을 객체로 사용하고, 객체가 사용될 때마다 객체를 인스턴스화합니다. 또한 파이어 폭스에서도 완벽하게 작동합니다. 문제는 IE6뿐입니다. – Abhi
수면에 영향이 있다는 사실은 타이밍 문제 (분명히)를 암시합니다. IE6에서 서버로 트래픽을 감지하고 FF 트래픽과 비교 했습니까? – Upperstage
나는 Fiddler를 사용하여 요청 응답을 보려고합니다. 두 경우 모두 (수면과 수면 없음) 요청이 전송되고 응답이 돌아 왔지만 잠자기가없는 경우 Fiddler는 세션이 중단되었다고 전합니다. 이것은 무엇을 의미 하는가? IE가 세션을 중단하고 있습니까? – Abhi