JavaScriptおれおれAdvent Calendar 2014 – 05日目
駆け込み需要で五日目。
CDNって
Contents Delivery Networkの事で、平たくいうと「イケてるファイルサーバー」くらいの理解で良い。加えて今回の文脈だと「そのファイルを自由にページへ読み込んで良い」というのも追加。
JSファイルが公開された状態で置いてあって、しかもそれを自由に使って良いよという事になってます。(JSの場合ね。CDN自体はJSに限ったものじゃないけど。)
何が嬉しいのか
ライブラリーのファイルをダウンロードしてきてープロジェクトのディレクトリーへ移動させてー自分のファイルサーバーへアップロードしてーなんていう手間がなくなります。
あとCDNのサーバーは強力なんで、ファイルサイズが大きくてもページを開いたときさっさかダウンロードできたり。さらに事前に他のサイトでも同じCDNのファイルを利用している場合、最初からキャッシュに溜まっている可能性もあります。
つかいかた
<script>
で読み込むだけ。
<script src="//code.jquery.com/jquery-2.1.1.min.js"></script>
おまけ: “//”で始まるリンクについて
普通は”http://”か”https://”かだと思うんだけど、”//”で始める事もできる。古いIEでも大丈夫みたい。
“//”から始めると、ページのURLと同じプロトコルになる。相対的に定まるので、HTTPSなのかどうなのか考える手間が省けてコピペで使いまわせるようになるのだ。
ちなみにローカルファイルを開いたときは”//”が”file://”と判断されちゃうので注意。
CDN
こんなのがあります。
cdnjs.com
おすすめ。
とにかく大量のライブラリーをホストしてます。(今数えたら1,001個だ。) 一覧に未掲載のものがあってもGitHubでPR投げたら追加してもらえるかも。
CDNの大手CloudFlareがスポンサーの筆頭にいるので、ネットワークも強そう。
jQuery
jQuery 1.x, 2.x本体の他jQuery UIやjQuery Mobile等々のファイルをホストしてます。
jQueryやAngularJS、SWFObjectなど。
Microsoft
jQueryやASP.NET、Bootstrapなど。
障害対応
CDNは強力なネットワークを使っているのだけど、ごくまれに落ちるという可能性はある。
対応としては、使わない(プロジェクト立ち上げ時だけ使う)で自前でホストするというのが最善だろうか。使った方が良いと思うけど。
スクリプトの読み込み失敗を検知して別CDNや自サーバーから読み込み直す、というのもアリだけど、その実装するコストに見合うほどCDNが落ちないんじゃないかなー。
まあ落ちたら落ちたで仕方ないってなくらいの心持ちではいかがでしょうか。
まま、お茶でもどうぞ。