Единственная проблема, которую я вижу с этим, это эта часть:
window[callbackName] = function(result) {
$('jsonpScriptElement' + callbackID).remove();
callback(result);
window.splice(callbackName);
}
Вы делаете новую функцию для каждого звонка, который вы делаете.Постарайтесь избежать этого, создав универсальную функцию, которую все еще безопасно использовать асинхронно.Не должно быть слишком сложно прийти с чем-то, вы можете, например, передать порядковый номер вместе с вызовом JSONp и вернуться к обратному вызову, чтобы вы могли разделить различные запросы.
И да, JSONp действительноэто просто: P
Кроме того, вы можете изменить функцию JSONp следующим образом:
var jsonp = (function() {
var callbackID = 0;
return function (url, callback) {
//.. function body ..
}
}());
Так что вам не нужно объявлять callbackID
в глобальной области видимости