prototype.js を利用してコンテンツをインクルードする
Webサイトを構築する場合、繰り返し利用されるコンテンツ - サイトフッターなど - は、ファイルを分割して共通利用するのが一般的ですね。
ここでは、prototype.js を利用したちょっと変わった共通利用(つまり、コンテンツのインクルード)の方法があるので、説明したいと思います。
その前に、コンテンツのインクルード方法にはよく知られた方法がいくつかありますので、まずは簡単に触れておきます。
・SSI(サーバーサイドインクルード)
Webサーバが提供するコンテンツインクルード機能。昔のWebサイトでは多様されていましたが、処理速度の問題などから利用がさけられる傾向になっていきました。現在ではほぼ利用しなくなっています(私のまわりでは、ですが)。利用する条件としては、Webサーバの設定で、SSIの利用が許可されている必要があります。
・CGI(サーバ―サイドのプログラム、アプリケーションサーバ)によるインクルード
サーバーサイドのプログラム(Java, Perl, PHPなど) で行うコンテンツインクルード。おそらく現在(2008/5)もっとも普及している方法ですね。具体的な方法(ソースコード)はプログラム言語ごとにことなりますが、簡単に、確実にコンテンツをインクルードすることができる方法です。
・JavaScript document.write() によるインクルード
インクルードするコンテンツ部分を、すべて document.write() で出力する方法。あまり見かけない方法ですが、サーバーサイドのインクルードが利用できない環境では、回避策として利用されることもあるようです。具体的には、コンテンツの出力内容を document.write() で記述した JavaScript の外部ファイルを作成し、この JavaScript ファイルを、インクルード元のHTMLファイルの script タグでロードする(src属性に指定する)というものです。JavaScript のソースコードとコンテンツが混在してしまうため、メンテナンス性が低下してしまいますね。
と、大雑把ですがこの3つの方法があります。
では、prototype.js を利用したコンテンツインクルードの方法についてですが、特徴は、JavaScript を利用したインクルード(サーバーサイドの技術は不要)ですが、メンテナンス性が低下しないというところでしょうか。
サーバーサイドで利用される方法と同様に、インクルードするコンテンツを外部ファイルとして分離できます。
具体的な方法について説明します。
1.まずは、prototype.js をロードします
<script type="text/javascript" src="[あなたのサーバ上のパス]/prototype.js"></script>
2.次に、インクルード用のオリジナルファンクションを定義します
<script type="text/javascript">
function my_include(id, file) {
document.open();
document.write('<div id="' + id + '"></div>');
document.close();
var options = {};
options.method = "get";
options.asynchronous = false;
new Ajax.Updater(id, file, options);
}
</script>
※ファンクションは head タグ内で定義
3.定義したファンクションで外部ファイルをインクードする
<script type="text/javascript">my_include("sample_id","sample.html");</script>
※インクルードするコンテンツは Ajax を利用してロードされるため、インクルード元と同じサーバ(ドメイン)に設置しておく必要があります
以上です。
利用方法はとても簡単ですので、興味がある方はぜひお試しください。
- 前のエントリー: Webフォームへの自動入力
- 次のエントリー: バナーのローテーション表示を JavaScript で!
- Codess Note 最新エントリ
- ホワイトペーパー
- 企画特集
- 話題のタグ
SQLite対応アプリのデータベースファイルを閲覧する
グーグル、「Google Buzz」を発表--Gmailのソーシャル機能を強化
「H.264」ストリーミングのロイヤリティ無料期間が延長
マイクロソフト、「Office 2010」のRC版をリリース
御社はまだフリーの転送サービスですか?
アンケートから見るセキュリティ対策の実態
通販サイトのアクセス集中からの危機を救う
アプリケーション仮想化 3つの課題
仮想環境のバックアップは難しいのか
DBのパフォーマンスに困ってませんか?
Xbox Live インディーズゲーム開発の軌跡
利用者の理想を追求した最新レンタルサーバ
新しい視点のレンタルサーバが誕生!
仮想化をダメにするストレージの実態
経営統合後の事業損益構造の見える化を実現
身近な業務をCRMが変革!
事例 VMwareでデータセンターをクラウド化
レガシーアプリケーションの稼働どうしてる?