1

LabJSを介して非同期でスクリプトをロードしており、依存するスクリプトのチェーンがあります。これで、チェーン内のスクリプトの1つが壊れた場合(ダウンロードできない、または接続がタイムアウトしたという意味で)、依存関係チェーンの下にある残りのスクリプトは実行されないと思います。このような場合、特定のスクリプトのロードに失敗した場合に適切な対策を講じるためのカスタムコールバック関数を提供することは可能ですか?これがLabJSで不可能な場合、他の非同期スクリプトローダーでも可能ですか?

4

3 に答える 3

4

setTimeout()タイムアウトをLABjsコードにラップする方法を示す例を次に示します...この場合、CDNからjqueryをロードしようとするフォールバックメカニズムを提供し、タイムアウトが経過すると、それを中止して、からjqueryをロードしようとします。代わりにローカルファイル。

https://gist.github.com/670840

于 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 に答える