プロジェクトにおけるCDNの活用方法

WebプロジェクトにパブリックCDNを導入する際にはいくつか重要な考慮点があります。以下に具体的な選定基準と実装例を示します。

CDNホスティングサービスの選定基準

無料利用可能な主要CDNサービス

  1. BootCDN (https://www.bootcdn.cn/)
  • CDNJSとのライブラリ同期
  • 海外ノード対応(遅延あり)
  • HTTP/2プロトコルサポート
  • 中国地域のアクセス速度良好
  1. 又拍云 (http://jscdn.upai.com/)
  • 事前登録必須
  • HTTP/3実装
  • グローバルノードの高速配信
  1. cdnjs (https://cdnjs.com/)
  • 中国国内の一部地域での利用制限
  • 海外サーバーの高速性
  1. jsDelivr (https://www.jsdelivr.com/)
  • 中国地域の安定した配信
  • グローバルでの均一なパフォーマンス
  • NPMファイル配信機能搭載
  1. UNPKG (https://unpkg.com/)
  • NPMベースのファイル配信
  • 海外サーバーの高速性
  1. 七牛 (http://staticfile.org/)
  • 中国地域の最適化配信
  • グローバルノードの高速性
  • HTTP/2非対応
  1. 75CDN (https://cdn.baomitu.com/)
  • Google Fontsライブラリ収録
  • HTTP/2プロトコルサポート

ネットワーク環境のリアルタイム検証ツール: https://www.17ce.com/

推奨利用パターン

  • 国内専用プロジェクト: BootCDN, 又拍云, jsDelivr, 七牛, 75CDN
  • 海外向けプロジェクト: UNPKG, jsDelivr, cdnjs, 七牛
  • グローバル対応: jsDelivr, 七牛

フェールセーフ設計

メソッド1: スクリプトレベルの冗長化

<script src="http://cdn.staticfile.org/jquery/2.1.0/jquery.min.js"></script>
<script>
  if (!window.jQuery) {
    document.write('<script src="/local/jquery.min.js"><\/script>');
  }
</script>
  • ローカルキャッシュまたは代替CDNへの自動切り替え
  • 非同期ロード時の処理複雑化に注意

メソッド2: ライブラリベースの監視

<script type="text/javascript">
  var assetGuard = function() {
    // ライブラリコアコード
  }();
  
  var config = assetGuard({
    domainMap: {
      'https://cdn.jsdelivr.net/npm/video.js@7.10.22/dist/': 
      'https://cdn.bootcdn.net/ajax/libs/video.js/7.10.1/'
    }
  });
</script>
<script src="https://cdn.jsdelivr.net/npm/video.js@7.10.22/dist/video.js"></script>

性能向上効果

タグ: CDN javascript HTTP2 パフォーマンス最適化

9月10日 10:55 投稿