end0tknr's kipple - web写経開発

太宰府天満宮の狛犬って、妙にカワイイ

jQuery.getScript()を使えば、javascriptの読込みタイミングを指定できそう

http://coliss.com/articles/build-websites/operation/javascript/jquery-plugin-lazy-loading-script.html
http://www.webrevised.com/169-jquery-lazy-loading-script-on-demand-javascript-plugin/

↑このエントリで紹介されている「Lazy Loading Script」は、javascriptの読込みタイミングを指定するものですが、内部的には jQuery.getScript() を呼んでいるだけです。

※Lazy Loading Scriptのsrcは↓これだけ。

(function($){ 
    var my_lazy_loader_loaded_files = new Array(); //Will hold all loaded files
    $.fn.lazyloadScript =
        function (filename,callback_func,callback_already_loaded) { //callback(data,status)
	        //Check if the file is already loaded
	        var length = my_lazy_loader_loaded_files.length;
	    for(var i = 0; i < length; i++) {
	        if (my_lazy_loader_loaded_files[i] == filename) {
		    if((callback_already_loaded)&&(typeof callback_already_loaded== 'function')){
		        callback_already_loaded.call(this);
		        return false;
		    }
	        }
	    }
	    if((callback_func)&&(typeof callback_func == 'function')) {
	        jQuery.getScript( filename, function(data) {
		    my_lazy_loader_loaded_files.push(filename);
		    callback_func.call(this,data)
		    return true;
	        });
	    }else {			
	        jQuery.getScript( filename, function(data){
		    my_lazy_loader_loaded_files.push(filename);
	        });
	    } 
	    return false;			
        } 	
}) (jQuery);

次に jQuery.getScript() のsrc(ver.1.7)を読むと、jQuery.get()を呼んでいるだけです。

getScript: function( url, callback ) {
    return jQuery.get( url, undefined, callback, "script" );
},
getJSON: function( url, data, callback ) {
    return jQuery.get( url, data, callback, "json" );
},

jQuery.getScript() ... 今後使うことがあるかも...気に留めておきます。

何やら画像を遅延読込みするlazyloadというものもあるらしい。
http://www.appelsiini.net/projects/lazyload