【Lifehacks】リンク先URIをランダムに出力する
■タスク
・ウェブページ上に設置したリンクに関し、リンク先URIをランダムに出力する。
■目的
・リンク先コンテンツ(ウェブページ、ウェブアプリケーション、ダウンロードファイル等)へのアクセス増大が予想される際、負荷分散のために複数サーバに同等コンテンツを配置し、クライアント側にランダムに返却する。
■仕様
・スクリプト先頭で配列変数に予め代入した複数URIに基づきリンク先をランダムに出力する。
・ランダムリンクであることの注意文、リンク文字列等もスクリプト内変数で定義する。
■使用方法
・以下のSamplePage.htmlのようにウェブページに埋め込んで使用する。
SamplePage.html
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS"> <meta http-equiv="Content-Language" content="ja"> <meta http-equiv="Content-Script-Type" content="text/javascript"> <title>サンプルページ</title> <script type="text/javascript" src="SgRandomLink.js" charset="Shift_JIS"> </script> </head> <body> <h1>サンプルページ</h1> <p> これはランダムリンクのサンプルページです。 ダウンロードは以下のリンクから実行してください。 </p> <script type="text/javascript"> <!--// SgRandomLink(); //--> </script> <noscript> <!-- JavaScript無効のブラウザ向け固定リンク記述する。 --> <a href="./SgRandomuLink20081023.zip">ダウンロード</a> </noscript> </body> </html>
■プログラム
// // SgRandomLink.js // リンク先URIをランダムに出力する。 // // Author: Orihika Ikuo // Create: 2008.10.23 // Update: 2008.XX.XX // function SgRandomLink() { // ランダムに出力したいコンテンツのURIを記述する。 var aryUriList = [ "./SgRandomuLink20081023.zip", "./SgRandomuLink20081023_01.zip", "./SgRandomuLink20081023_02.zip" ] // リンクの直前に書く説明文を記述する。 var msg = "<p>" + "※負荷分散のため、複数のダウンロードサイトから1箇所をランダムに選択します。" + "</p>" ; // リンクを張る文字列を記述する。 var label = "ダウンロード"; var index = Math.floor(Math.random() * aryUriList.length); var uri = aryUriList[index]; document.write(msg); document.write(label.link(uri)); }