2012-05-09 5 views
2

ベストプラクティスでは、Jqueryに大きく依存する私のウェブサイトと、GoogleのCDNからソースを取得するJQuery UIは、何らかの理由でCDNが失敗した場合のフォールバックが必要です。Jquery UIテーマが読み込まれているかどうかを確認するには?

私の質問は、特定のテーマでこれを行うにはどうすればいいですか?問題がある場合、私はRedmondテーマを使用しています。

は、現在、私のようなコードのものを使用する予定:

if(!jquery){//load local file instead; } 
    else if(!jquery.ui){//load local file instead; } 

しかし、可能ならば、私は、あまりにもグーグルからロードされたテーマファイルのフォールバックをしたいと思います。

アイデア? :)

+0

それはあなたのサーバーにjqueryの、jqueryのUIとテーマファイルを公開することはできません:

また、これはから繰り返し質問はありますか? – hkutluay

+0

@hkutluayはい、可能ですが、GoogleのCDN(最も一般的なafaik)の共通アセットを提供することで、キャッシュできるので、多くのユーザーが既にそれを持っており、ダウンロードする必要はありません。欠点はCDNに依存しています。これは私がテーマファイルを扱おうとしていることです。 –

+0

ありがとう、説明のおかげで – hkutluay

答えて

1

使用http://yepnopejs.com/

これは、リソース・ローダであると同様にCSSファイルとの素晴らしい作品。試してみてください。その例は自分のウェブページにあります。

How to fallback to local stylesheet (not script) if CDN fails

+0

これは大変です、ありがとうございました。私のテーマは技術的にはCSSファイルなので、これは良い選択です。繰り返しの質問に対する謝罪は、その1つの検索を見つけられませんでした。答えに乾杯! :) –

1
if (typeof jQuery=='undefined') { //check if jQuery is loaded 
    console.log('no jQuery'); 
}else{ //if jQuery loaded 
    if (typeof jQuery.ui=='undefined') { //check if jQuery UI is loaded 
     console.log('no jQuery UI'); 
    } 
} 

はここで左のライブラリを切り替えるとコンソールをチェックし、FIDDLEです。

ライブラリに読み込みに妥当な時間を与えるには、間隔とタイムアウトが必要です。 数秒以内にロードされない場合は、独自のファイルをインクルードするか、src属性を置き換えて別のCDNを使用してください。 GoogleのアナリティクスコードやFacebookのプラグインなどを見て、新しいスクリプトタグを頭の部分に挿入する方法を確認してください。

+0

ありがとう、これは私が探していたものではありません。私はロードされているカスタムjquery UIテーマをテストするメソッドを探しています。私はjQueryとjQuery UIのメソッドを認識していますが、現在はテーマのCDNに依存していますが、これはフォールバックなしでは理想的ではありません。 –

+0

テーマのソースコードをチェックし、固有の名前を持つ関数を見つけて、typeofで上記と同様に定義されているかどうかを確認します。 – adeneo

+0

申し訳ありませんが、私はクリアされていない場合 - jQueryのUIテーマはちょうど.cssファイルです。申し訳ありませんが、私はそれを指定したはずです。ありがとう、結構です! :) –

0

あなたがCDNの参照、キーオブジェクトのためのテストを含むことができ、そしてそれはその後、未定義だ場合:

1)サーバー上のファイル(スクリプトやスタイル)をホストし、CDNはに失敗した場合、これらのファイルにフォールバックファイルを読み込みます。

2)** をお勧めします。 ** Google CDNが正しく読み込まれない場合、既存のCDN(使いやすいです)を使用してこれらのファイルにフォールバックします。

+0

これは基本的に私がやろうとしていることです。私のテーマが失敗したかどうかをテストする方法がわかりません。これは、ローカルではなくフォールバックCDNを使用することをお勧めします。なぜなら両方とも非常に混乱しにくく、キャッシュされている可能性があるからです。しかし、私はまだ読み込まれている私のテーマをテストする方法がわかりません。 –

+0

http://stackoverflow.com/questions/3794128/how-to-check-if-an-external-css-file-is-loaded-using-javascript – BentOnCoding

+0

その質問は、CSSファイルを検出する方法に対処しています。 – BentOnCoding

関連する問題