Я использую собственную библиотеку для репликации вызовов jsonp. Прежде чем вы, ребята, попросите меня использовать JQuery или другие библиотеки, позвольте мне сказать, что я не могу использовать его из-за некоторых ограничений.
Ниже приведен код, используемый для запроса:
</p>
<pre>
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);
};
</pre>
<p>
Это работает при первом запуске. При последующих выполнениях выполняется запрос, но обратный вызов не выполняется.
Если я использую метод сна (прокомментированный в коде), как показано ниже, обратный вызов также выполняется при последующих вызовах.
</p>
<pre>
function sleep(milliseconds) {
var start = new Date().getTime();
for (var i = 0; i milliseconds){
break;
}
}
}
</pre>
<p>
Как сон влияет на выполнение обратного вызова? Работает нормально в Firefox, хотя.