2016-06-17 12 views
1

私はオンラインとオフラインで仕事をしたいと思うウェブサイトを持っています。私は読み込み時間を短縮したいので、読み込み速度の遅いスクリプトを小さくしました。それは十分に機能しませんでした。ローカルでは、スクリプトの一部がロードに4〜6秒かかります。スクリプトを外部と内部でリンクするにはどうすればよいですか?

私は、外部からスクリプトをリンクすると大幅にスピードアップすることを知っています。私はそれを試して、それは動作します。しかし、一部のユーザーはインターネットにアクセスできない。スクリプトのグループを外部サイトにリンクする方法はありますか、インターネットにアクセスできない場合はローカルにリンクする方法はありますか?

<script src="js/jquery-1.9.1.min.js" type="text/javascript"></script> 
<script src="js/jquery.dataTables.min.js" type="text/javascript"></script> 
<script src="ui/jquery-ui.min.js" type="text/javascript"></script> 

答えて

1

あなたは基本的にthis answer.に似た何かを行うことができ、アイデアは、あなたがjQueryのためのインターネットベースのスクリプトをロードしようとしていることです。その後、通常のスクリプトを実行して、jQuery === undefinedかどうかを確認します。存在する場合は、ローカルコピーをロードします。

基本的に、あなたが何をしたいの例:

<script src="[jQueryURL]" type="text/javascript"></script> 
<script src="[dataTablesURL]" type="text/javascript"></script> 
<script src="[jQueryUIURL]" type="text/javascript"></script> 
<script type="text/javascript"> 
    if(jQuery === undefined) { 
     var script = document.createElement("script"); 
     script.type = "text/javascript"; 
     script.src = "js/jquery-1.9.1.min.js"; 
     document.getElementsByTagName('head')[0].appendChild(script); 
     //repeat for other two scripts here 
    } 
</script> 

何が起こるだろうと、それは問題でスクリプトをロードしようと、とjQueryが定義されている場合、その後、それがチェックするということです。そうでなければ、スクリプトがロードされなかったので、ローカルバージョンをロードしてヘッダーに追加する必要があります。

+3

外部ファイル他の賢明な負荷内部ファイルをロードニース資源その後、存在する場合、いくつかのコードをあなたの答えを補完してみてください。 – DaniP

+1

私が提示したコードと表示された答えが同じであるため、唯一の理由はありません。 – Polantaris

+0

それだけではなく、リンクだけでなく、コメントや重複に投票することもできます。コードが修正されています。 upvotesを得るためにあなたの答えを改善しなさい – DaniP

0

スクリプトがテストできるグローバル変数を宣言していることを確認してください。次に、外部スクリプトの読み込みに失敗した場合は、ローカルスクリプトの読み込み要素を生成します(これは、その変数をテストすることで判断できます)。

<script src="http://example.com/example.js"></script> 
<script> 
    if !(window.Example) { 
     document.write('<script src="../scripts/example.js"><\/script>'); 
    } 
</script> 
0

<script type="text/javascript"> 
 
\t if(navigator.onLine) 
 
\t { 
 
\t \t alert("Connected"); 
 
\t } 
 
\t else 
 
\t { 
 
\t \t alert("Not Connected"); 
 
\t } 
 
</script>

最初のチェック、インターネット接続が

関連する問題