私の知る限り、requirejs
通常は次のように使用されます。
require(['http://ajax.googleapis.com/ajax/libs/jquery/1.4.4/jquery.min.js'],
function() {
// Code that depends on jQuery here.
}
);
jQueryに依存する関数は、jQueryがロードされたときにのみ呼び出されます。ただし、jQueryの読み込みに失敗した場合、jQueryに依存するコードは実行されません。
この場合、ローカルjQueryを試して使用したいので、スクリプトのロードタイムアウトエラーをキャッチして、別のソースからjQueryをロードしてみてください。(ただし、タイムアウトエラーは遅いことに注意してください。)
ドキュメントにはエラー処理に関する情報はほとんどありません:
エラーを検出するには、オーバーライドrequire.onError()
してエラーを取得できます。タイムアウトの問題である場合、onerror関数に渡されるエラーオブジェクトには2つのプロパティが含まれます。
- requireType:値は「タイムアウト」になります
- requireModules:タイムアウトしたモジュール名/URLの配列。
私は、コードは次のように見えるかもしれないと思います(テストされていません):
var functionThatDependsOnJquery = function() {
// Code that depends on jQuery here.
};
require.onError = function(err) {
# If we have Google jQuery load timeout...
if (err.requireType = "timeout" &&
err.requireModules.indexOf('http://ajax.googleapis.com/ajax/libs/jquery/1.4.4/jquery.min.js') != -1
) {
# ...we'll try to load it from another source.
require(['/scripts/localJquery'], functionThatDependsOnJquery);
}
# We have another script load timeout, so we just throw an error
# as requirejs normally does.
else { throw err; }
};
# Try to load Google jQuery.
require(['http://ajax.googleapis.com/ajax/libs/jquery/1.4.4/jquery.min.js'],
functionThatDependsOnJquery);