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を呼び出します。
