steveosoule
6/19/2013 - 4:57 PM

javascirpt-preload-images-from-directory.js

javascirpt-preload-images-from-directory.js

// JavaScript Document
function preloadImagesFromDirectory(dir){
	if(!dir) return;
	function getJSON(URL,success){
		// Create new function (within global namespace) (With unique name):
		var uniqueID = 'json'+(+(new Date()));
			window[uniqueID] = function(data){
				success && success(data);
			};

		// Append new SCRIPT element to DOM:
		document.getElementsByTagName('body')[0].appendChild((function(){
			var script = document.createElement('script');
			script.type = 'text/javascript';
			script.src = URL.replace('callback=?','callback=' + uniqueID);
			return script;
		})());
	}

	function preload(srcArray){
		for(var i = 0; i < srcArray.length; i++){
			(new Image()).src = srcArray[i];
		}
	}

	// Get that JSON data:
	getJSON('scanImageDirectory.json.php?directory=' + encodeURIComponent(dir) + '&callback=?', function(data){
		return data.images ? preload( data.images ) : false;
	});
}


window.onload = function(){
	preloadImagesFromDirectory('images/swatches/');
}