JSLoader

これは何?

外部JSの読み込みを同期又は非同期に読み込みながら、間に処理を挟んだりするライブラリです。 依存関係のあるライブラリの読み込み、ブックマークレット、Greasemonkey、widgetの読み込み等に使う事が出来ます。

使い方


new JSLoder({
    finish : function(){
        alert('全ての読み込み完了');
    }
})
.next('first.js')
.next(function(){
    alert('firstの読み込み完了')
})
.next('second.js','third.js')
.next(function(){
    alert('secondとthirdの読み込み完了')
})
.start()

オブジェクトを作った後に、next()をメソッドチェーンで繋げながら、読み込むJSと処理を定義していき、 最後にstart()を呼び出して、処理を走らせます。

動作確認は以下で行っています。

Win
IE6
IE7
Firefox3.0
Opera9.5
Safari3.1
Linux
Firefox3.0
Opera9.5
Mac
環境がないので不明

ダウンロード

JSLoaderという名前は同名の別ライブラリがあるので、後で変えるかも知れませんが、 ソースはとりあえずcodereposに置いています。

CodeRepos::JSLoder
jsloader.jsを読み込ませてから使います。ブックマークレットやGreasemonkeyで使う場合はコピーして改変下さい。

簡易APIリファレンス

呼び出しに使うもののみを簡易的に書いておきます。

オブジェクト

JSLoder( [object options] )

option values
append : element object
default = document.body
scriptタグを追加するエレメントオブジェクト
finish : function object
全ての処理を終えた後のコールバック関数

コンストラクタです。new演算子を使って呼び出します

メソッド

Object JSLoader next( String url or function [, String url or function ... ] )

arguments
String url
scriptタグで読み込む外部JSのURL
function
nextが呼ばれたときに行う処理

nextの引数には外部JSのURL又はfunctionオブジェクトを渡します。

文字列を渡せば、外部JSの読み込み、関数オブジェクトならその関数の実行をキューに追加します。 next()を呼んでキューに処理を溜めていき、start()で実行します。

void start()

next()からキューに溜められた処理を実行していきます。

next()の引数に渡された処理はまとめて実行され、全ての処理が完了(JSの読み込み完了又は、関数の実行完了)した段階で、 次のnextで割り当てられた処理を実行していきます。

すべての処理が終わった段階で、コンストラクタで定義された、finishを呼び出します。