LabJSを介して非同期でスクリプトをロードしており、依存するスクリプトのチェーンがあります。これで、チェーン内のスクリプトの1つが壊れた場合(ダウンロードできない、または接続がタイムアウトしたという意味で)、依存関係チェーンの下にある残りのスクリプトは実行されないと思います。このような場合、特定のスクリプトのロードに失敗した場合に適切な対策を講じるためのカスタムコールバック関数を提供することは可能ですか?これがLabJSで不可能な場合、他の非同期スクリプトローダーでも可能ですか?
3 に答える
4
setTimeout()タイムアウトをLABjsコードにラップする方法を示す例を次に示します...この場合、CDNからjqueryをロードしようとするフォールバックメカニズムを提供し、タイムアウトが経過すると、それを中止して、からjqueryをロードしようとします。代わりにローカルファイル。
于 2011-06-11T17:48:42.907 に答える
2
たまたま私から約20フィート離れたところに座っているgetifyによると、タイムアウトが明示的な「ポジティブ」イベントではないことが主な理由で、一般的にそのようなタイムアウトを処理する方法はありません。(このような場合にライブラリが依存関係チェーンを処理する特定のケースでは、作成者自身に明確にさせます。)
あなたができることは、あなたが適切であると感じる限り、あなた自身のウォッチドッグを使って待つことです。インターバルタイマーを実行して、スクリプトがページに到達したことを示す兆候を確認します。何度か繰り返しても表示されない場合は、別のスクリプトホスト(別のスクリプトホストなど)にフォールバックできます。
于 2011-06-11T13:48:06.797 に答える
0
これはどうですか?私はこれをテストしていません:
$LAB.script('jquery-from-cdn.js').wait(function(){
if(!window.jQuery) {
$LAB.script('local-jquery.js').wait(load_scripts);
} else {
load_scripts();
}
});
function load_scripts() {
$LAB.script('other-js.js');
}
于 2012-02-12T20:28:14.913 に答える