赤字:JavaScriptの命令や重要なタグ/青字:用途に応じて変更する部分/緑字:変更可能な変数名やユーザー関数名
ファイルの更新日:index.html
<script type="text/javascript">
getUpdate("index.html");
//ファイルの更新日を取得
function getUpdate(fileName) {
var obj = createRequest(); //リクエスト
if (obj) {
//通信実行
obj.open("get",fileName);
obj.onreadystatechange = function() {
//通信完了
if (obj.readyState == 4 && obj.status == 200) {
//読込後の処理
var date = new Date(obj.getResponseHeader("last-modified"));
document.getElementById("view").innerHTML = date.getFullYear() + "/" + (date.getMonth() + 1) + "/" + date.getDate() + " " + date.getHours() + ":" + date.getMinutes();
}
}
obj.send(null);
}
}
//非同期通信オブジェクトの生成
function createRequest() {
try {
return new XMLHttpRequest();
} catch (e) {
try {
return new ActiveXObject("Microsoft.XMLHTTP");
} catch (e) {
return null;
}
}
return null;
}
</script>
変数fileNameには、ファイルのURLを記述します。
新しいリクエストを変数objに作成し、非同期通信を開始します。
通信が始まるとonreadystatechangeが発生し、obj.readyStateとobj.statusを監視することで通信が終わったかどうかを判定し、終了すると事後処理に移ります。
事後処理において、読み込んだファイルのレスポンスヘッダから更新日を取得して、日付を表示しています。
※タイマーを使ってgetUpdate()を複数回呼び出しても2回目以降情報が更新されない恐れがあります。