About Last-Mod

Howto

About

いくつかのファイルの更新時間を取得して、 そのデータを JavaScriptファイルに書き出すスクリプトです。

その JavaScriptファイルを HTMLから呼び出し、データを取得することによって、 HTML 内に、あるファイルの更新時刻を挿入できます。

Sample

実際の使い方やサンプルは、このHTMLの下のほうにありますので、 そちらを参考にしてください。

Download

User-Setting

いくつかのユーザー設定は、 CGIスクリプトの上部の [ setting ] のところで行ってください。

$jsfile
保存する JavaScript ファイルのパスを設定.
$date_format
上の JS ファイルに書き出すときの、日付のフォーマット.
@files
デフォルトで更新時間をチェックするファイルのリストを設定.

Update

保存用の JSファイルが更新されるのは、 [ setting ] のところの、@files に値が設定されているか、 "http://.../lastmod.cgi?files=***.html" のように、 スクリプトを引数付きで呼び出したときです。

サンプルは Set-Sample にあります。

Checked Filed

チェックするファイルは、複数設定できます。

[ setting ] のところの、@files に書く場合
@files = ('***1.html', '***2.html', '***3.html');
引数つきで呼び出す場合
http://.../lastmod.cgi?files=***1.html+***2.html+***3.html,
=>
http://.../lastmod.cgi?files=***1.html%20***2.html%20***3.html
区切り文字は "+"(%2B), ","(%2C), " "(space or tab-space)(%20 or %09) のいずれかです。

Output Type

また、以下のように、呼び出すときの出力形式を分けられます。

HTMLファイルとして呼び出す場合
<a href="http://.../lastmod.cgi?files=***.html">更新履歴</a>
JSファイルとして呼び出す場合
<script type="text/javascript" src="lastmod.cgi?mode=js&amp;files=***.html"></script>
ダミーイメージファイルとして呼び出す場合
<img src="lastmod.cgi?mode=img&amp;files=***.html" alt="dummy">

JS-Format

JSファイルには以下のような形式で保存されます。

var LastMod = {
    'ファイル名' : [更新時間, '更新日付'],
    ... (ファイル数分繰り返し)
    'last-update' : [JSファイルの更新時間, 'JSファイルの更新日付']
};

サンプルは Get-Sample にあります。

Get-Sample

Get-Sample-test0

HTML ソースの指定の箇所に、JavaScript を直接貼っつけます。 わかりやすいので、初心者さん向け。

JavaScriptソース
<script type="text/javascript" src="lastmod.js"></script>
...
...
<a href="hoge.html">hoge.html</a>
<script type="text/javascript">
    if (window.LastMod && LastMod['hoge.html']) {
        document.write('(Last-Update : ' + LastMod['hoge.html'][1] +')');
    }
</script>

Get-Sample-test1

同梱の lastmod_test1.js を使います。

まず、いくつかの id のリストを与える。 その id を持つ要素があり、 かつ、LastMod[ id + '.html'] が存在する場合、 その要素の title 属性に "Last-Update : 2005/07/07 00:00:00" が入る。

JavaScriptソース
<script type="text/javascript" src="lastmod.js"></script>
<script type="text/javascript" src="lastmod_test1.js"></script>

Get-Sample-test2

同梱の lastmod_test2.js を使います。

ある <A> 要素が、class="lastmod" を持ち、 かつ、LastMod['href の値'] が存在する場合、 その <A> 要素の title 属性に "Last-Update : 2005/07/07 00:00:00" が入る。

JavaScriptソース
<script type="text/javascript" src="lastmod.js"></script>
<script type="text/javascript" src="lastmod_test2.js"></script>

Set Sample

Set as ...

Normal
lastmod.cgi
HTMLとして出力 (& 設定があったら更新)
HTML
lastmod.cgi?files=read_lastmod.html
HTMLとして出力 & 更新
JavaScript
lastmod.cgi?mode=js&files=read_lastmod.html
JavaScriptとして出力 & 更新
Dummy-Image
lastmod.cgi?mode=img&files=read_lastmod.html
ダミーの画像(1x1 GIF)として出力 & 更新

Semi-Automatic ?

以下のように HTML内に JavaScript を書くと、 そのページにアクセスしたときに、 100回 に 1回 の割合で CGIスクリプト が呼び出されます。

つまり、半自動で勝手に更新してくれるかもしれません。 手動での更新が面倒な場合にどうぞ。

<script type="text/javascript">
    // 100回 に 1回 の割合で更新チェック
    if (100 * Math.random() < 1) {
        var lastmod = new Image();
        lastmod.src = 'lastmod.cgi?mode=img&files=line-test.html+check_point.html';
    }
</script>