質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

Q&A

1回答

1708閲覧

CDNのフォールバック

fuji_fe

総合スコア93

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

1グッド

1クリップ

投稿2016/06/08 17:05

###前提・実現したいこと
CDNの読み込みで、サービスのサーバーがダウンしている時にフォールバックがしたい

###該当のソースコード

php

1<?php 2function loadJquery($modern,$legacy) { 3 global $ie8;//関数外でIE8の場合trueになる変数を定義しているものとする 4 $version = $ie8 ? $legacy : $modern; 5 //4種のCDNサービスのURLを用意 6 $cdnArr = array( 7 'http://code.jquery.com/jquery-'.$version.'.min.js', 8 'http://ajax.googleapis.com/ajax/libs/jquery/'.$version.'/jquery.min.js', 9 'http://cdn.jsdelivr.net/jquery/'.$version.'/jquery.min.js', 10 'http://cdnjs.cloudflare.com/ajax/libs/jquery/'.$version.'/jquery.min.js' 11 ); 12 foreach($cdnArr as $value) { 13 //ファイルからを1バイト取得できたら処理を実行する 14 if(@file_get_contents($value, NULL, NULL, 0, 1) !== false) { 15 echo str_replace('http:','',$value); 16 break; 17 } 18 } 19} 20?> 21 22<script src="<?php loadJquery($modern = '2.1.4',$legacy = '1.7.2'); ?>"></script>

javascriptで実装する方法がメジャーですが、
出力ソースを綺麗にするためphpで書いてみました。

「こうした方が良い」
「ここを変えた方が良い」

などございましたらご指摘いただけると嬉しいです。
全く問題なければその旨をコメント頂けると幸いです・・!

ucan-lab👍を押しています

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

PHPで実装した場合、キャッシュのタイミングによってはCDNがダウンしている可能性もあり、いつでも最適な出力がされるとは行かないと思います。

またキャッシュをしない場合でも、ページ出力時に毎回 CDN への呼び出しを行うことになるので、PHP側で最低1回HTML側で1回 CDN への接続が発生します。

JavaScriptで実装する方法が無難だと思います。

投稿2016/06/08 17:27

kei344

総合スコア69400

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問