3

クライアントのWebサイトはjquerytools.orgCDNに依存していましたが、これは現在機能していないため、彼のサイトは壊れています(Javascriptの正常な低下は無視されます)。彼は関連するファイルをローカルでホストできましたが、CDNの利点は得られません。冗長性のために、2つの独立したCDNで表面上同じJavascriptファイルを参照することはどれほど悪いことですか?

<script src="http://cdn.jquerytools.org/1.2.7/full/jquery.tools.min.js"></script>
<script src="http://jquerytools.flowplayer.netdna-cdn.com/1.2.6/all/jquery.tools.min.js"></script>
4

3 に答える 3

5

2番目のスクリプトをロードする前に、最初のCDNが実際にjQueryを配信したかどうかを確認する必要があります。

<script src="http://cdn.jquerytools.org/1.2.7/full/jquery.tools.min.js"></script>
<script type="text/javascript">
if (typeof jQuery.tools === 'undefined') {
    document.write('<script src="http://jquerytools.flowplayer.netdna-cdn.com/1.2.6/all/jquery.tools.min.js"><\/script>');
}
</script>
于 2013-02-05T10:10:36.203 に答える
3

http://html5boilerplate.comの方法を使用すると、これを非常に簡単かつ安全に行うことができます。

<script src="//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<script>window.jQuery || document.write('<script src="js/vendor/jquery-1.9.1.min.js"><\/script>')</script>

これは基本的にjQueryオブジェクトをテストし、存在しない場合は別のソースからインクルードしようとします。URLとオブジェクトテストを代替CDNに変更し、jQueryツールライブラリをテストするだけです。

この回答:jQueryToolsがロードされているかどうかをテストすると、jQueryツールをテストするのに役立ちますが、クリックを節約するには、次の(テストされていない)がそれを行う必要があります。

<script type="text/javascript" src="http://cdn.jquerytools.org/1.2.7/full/jquery.tools.min.js"></script>
<script>window.jQuery.fn.tabs || document.write('<script src="http://jquerytools.flowplayer.netdna-cdn.com/1.2.6/all/jquery.tools.min.js"><\/script>')</script>
于 2013-02-05T10:11:20.943 に答える
2

私はそれらの両方をロードしません。jqueryに対して次のことを行います。

<script src="//ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
<script>!window.jQuery && document.write(unescape('%3Cscript src="/static/js/jquery-1.7.1.min.js"%3E%3C/script%3E'))</script>

CDNバージョンの読み込みに失敗した場合に、ローカルバージョンのみを読み込む。これがベストプラクティスかどうかはわかりませんが、うまくいきます。もちろん、jquery-toolsがロードされているかどうかを識別する方法を見つける必要があります。後で(DomReady)などで初期化された場合、これは機能しません。

于 2013-02-05T10:10:46.127 に答える