ajaxImagePreloader = {
collectionImage : undefined,
loadCounter : -1,
http_request : undefined,
callBackFunction : undefined,
http_request : undefined,
createRequestObject : function(){
if (window.XMLHttpRequest) {
try {
return new XMLHttpRequest();
} catch (e){}
} else if (window.ActiveXObject) {
try {
return new ActiveXObject('Msxml2.XMLHTTP');
} catch (e){}
try {
return new ActiveXObject('Microsoft.XMLHTTP');
} catch (e){}
}
return null;
},
ajaxImagePreloader = {
collectionImage : undefined,
loadCounter : -1,
http_request : undefined,
callBackFunction : undefined,
http_request : undefined,
createRequestObject : function(){
if (window.XMLHttpRequest) {
try {
return new XMLHttpRequest();
} catch (e){}
} else if (window.ActiveXObject) {
try {
return new ActiveXObject('Msxml2.XMLHTTP');
} catch (e){}
try {
return new ActiveXObject('Microsoft.XMLHTTP');
} catch (e){}
}
return null;
},
makeRequest : function(url){
ajaxImagePreloader.http_request = ajaxImagePreloader.createRequestObject();
if (!ajaxImagePreloader.http_request) {
alert(' XMLHTTP ');
return false;
}
ajaxImagePreloader.http_request.onreadystatechange = ajaxImagePreloader.preloadImage;
ajaxImagePreloader.http_request.open('GET', url, true);
ajaxImagePreloader.http_request.send(null);
},
preloadImage : function(){
if(ajaxImagePreloader.loadCounter == -1){
ajaxImagePreloader.loadCounter++;
if ( ajaxImagePreloader.loadCounter ajaxImagePreloader.collectionImage.length ){
ajaxImagePreloader.makeRequest(ajaxImagePreloader.collectionImage[ajaxImagePreloader.loadCounter]);
}
}else{
if (ajaxImagePreloader.http_request.readyState == 4) {
ajaxImagePreloader.loadCounter++;
if ( ajaxImagePreloader.loadCounter ajaxImagePreloader.collectionImage.length ){
ajaxImagePreloader.makeRequest(ajaxImagePreloader.collectionImage[ajaxImagePreloader.loadCounter]);
}else{
ajaxImagePreloader.callBackFunction();
return true;
}
}
}
return null;
},
init : function(collectionImage, callBackFunction){
if (!collectionImage){
alert(' !');
return false;
}else{
ajaxImagePreloader.collectionImage = collectionImage;
}
if (!callBackFunction){
alert(' !');
return false;
}else{
ajaxImagePreloader.callBackFunction = callBackFunction;
}
ajaxImagePreloader.preloadImage();
}
}
makeRequest : function(url){
ajaxImagePreloader.http_request = ajaxImagePreloader.createRequestObject();
if (!ajaxImagePreloader.http_request) {
alert(' XMLHTTP ');
return false;
}
ajaxImagePreloader.http_request.onreadystatechange = ajaxImagePreloader.preloadImage;
ajaxImagePreloader.http_request.open('GET', url, true);
ajaxImagePreloader.http_request.send(null);
},
preloadImage : function(){
if(ajaxImagePreloader.loadCounter == -1){
ajaxImagePreloader.loadCounter++;
if ( ajaxImagePreloader.loadCounter ajaxImagePreloader.collectionImage.length ){
ajaxImagePreloader.makeRequest(ajaxImagePreloader.collectionImage[ajaxImagePreloader.loadCounter]);
}
}else{
if (ajaxImagePreloader.http_request.readyState == 4) {
ajaxImagePreloader.loadCounter++;
if ( ajaxImagePreloader.loadCounter ajaxImagePreloader.collectionImage.length ){
ajaxImagePreloader.makeRequest(ajaxImagePreloader.collectionImage[ajaxImagePreloader.loadCounter]);
}else{
ajaxImagePreloader.callBackFunction();
return true;
}
}
}
return null;
},
init : function(collectionImage, callBackFunction){
if (!collectionImage){
alert(' !');
return false;
}else{
ajaxImagePreloader.collectionImage = collectionImage;
}
if (!callBackFunction){
alert(' !');
return false;
}else{
ajaxImagePreloader.callBackFunction = callBackFunction;
}
ajaxImagePreloader.preloadImage();
}
}
Source: https://habr.com/ru/post/23360/