1


0

JavaScriptライブラリをローカルまたは外部で参照していますか?

現在、企業のイントラネットに展開されるASP.NET MVCアプリケーションを開発しており、わずかに変更された顧客向けバージョンを公開インターネットで利用できます。

多数の外部javascriptライブラリを使用しています(例: jQuery)およびライブラリの参照に関する議論があります - 外部ソースから参照する必要がありますか(例: Google経由 jQueryメソッドを読み込む)または独自のバージョンをローカルに保持し、そこから参照しますか?

プロジェクトマネージャーは、そこから参照する場合、Google(またはだれでも)に「依存関係」があることを少し心配しており、ライブラリの独自のコピーがあると、私たちはより独立するようになると考えています。 一方、他の誰かにライブラリをホストさせることには多くの利点があると聞きました-たとえば、彼らは私たちのためにバージョニングを処理します、Googleはすぐにはどこにも行きません…​

(議論のために、ホストしているイントラネットが外部アクセスを持っていると仮定します-明らかにそれが判明した場合、決定は私たちにとってあまりなされません!)

So. これは重要ですか? もしそうなら、私たちは何をすべきか、なぜですか?

(これは主観的であることに感謝しています-しかし、その問題に関する経験や考えを持つ人からアドバイスを得ることが非常に便利です。 これがコミュニティWikiの候補であるかどうかはわかりませんが、それをそこに置くべきかどうかを教えてください。

ありがとう:)

5 回答


2


アプリケーションは社内ユーザーにとって重要ですか? 「インターネットがダウンしている」場合、内部ユーザーはアプリケーションにアクセスできないため、ビジネスは苦しみますか? それは他の何よりも本当にリスクについてです。

それに加えて、変更がある場合-破損またはその他、「アップグレード」を管理したくないですか?


1


通常、ホストされたライブラリを使用する理由はパフォーマンスです。 ブラウザは、ホストごとに限られた数のファイルのみをダウンロードします。 したがって、ホストされたライブラリを使用すると、別のホストからファイルがロードされるため、他のファイルと並行してロードされます。

2番目の理由は、これらのファイルは通常圧縮されており、キャッシュヘッダーが正しく設定されているためです。 通常、これらのファイルはCDNに保存されます。これは、ユーザーが最も近いホストからファイルをダウンロードすることを意味します。

しかし、これらの理由はすべて、イントラネット環境ではそれほど重要ではありません。


0


あなたは何かをすることができます

if( window.$ ) {
    // jquery script goes here
} else {
    var elmScript = document.createElement('script');
    elmScript .src = 'jQuery.js'; // path to jquery
    elmScript .type = 'text/javascript';
    document.getElementsByTagName('head')[0].appendChild( elmScript );
}


0


コードを複数のサイトに分散させることで発生する複雑さの問題(一部は管理していませんが)にも関わらず、複数のドメインからコンテンツをプルするために若干のパフォーマンスペナルティがあります(例: 追加のDNSルックアップ)。 多くのユーザーが初めてのユーザーである公開Webサイトの場合、コードを既にキャッシュしておくことにはいくらかの利点があるかもしれませんが、そうでない場合はあまり意味がありません。


0


@ Kau-Boyがすでに述べたように、これを行う主な(唯一の)理由はパフォーマンス上の理由です。 JQueryは比較的小さなライブラリであり(提供されるもののため)、外部ユーザーのブラウザー/プロキシ/ ISPによってローカルにキャッシュされます。 そのため、小さなレイテンシーの向上以外には何も得られません。

多くの外部Javascriptファイルを追加している場合は、おそらく全体的な設計戦略を再検討する必要があります。 適切な汎用ライブラリ(私は個人的にjQueryは他の追随を許さないと考えています-これは主観的な部分です)を選択し、裏返しに学習します。 とにかくページごとに含まれるべきである奇妙なプラグインを除いて、もっと多くのライブラリを追加する必要はないはずです。

ちなみにここで他の人からいくつかの本当に良い答え。