ファイルの更新日を取得(非同期通信)

赤字: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回目以降情報が更新されない恐れがあります。

 

戻る