WWWCとは、Nakashima Tomoakiさん製作のWindowsで動作するWebページの更新チェッカです。登録してあるWebページが更新されると通知してくれます。
掲示板などのCGIも登録する事ができますが、CGIは動的なファイルなのでアクセスされるたびにサーバ側でCGIが実行されてしまい、それだけサーバに負荷がかかってしまいます。更新チェックの際にもそれだけ時間がかかってしまいます。
そこで、あらかじめ生成しておいた更新チェック用の静的なhtmlにアクセスさせることによってサーバの負荷を軽減し、更新チェックにかかる時間も短縮する事ができます。
どの掲示板に実装するかによって微妙に変わってくるので、ここではAX-BBSを例に説明していきます。やること自体は単純なので他の掲示板スクリプトにも十分応用きくと思います。(実装例)
# ---------------- # WWWC META Check用ファイル生成 $wwwc = "wwwc.html" # 出力するWWWC更新チェックファイル sub make_wwwc { if (!open(OUT,"> $wwwc")) { &error('設定ミス',"wwwc用チェックファイルを新規作成できません.<br>パーミッションが正しく設定されているかご確認下さい.",1); } print OUT "<html>\n"; print OUT "<head>\n"; print OUT "<meta http-equiv=\"Content-Type\" content=\"text/html; charset=x-sjis\">\n"; printf OUT "<META NAME=\"WWWC\" CONTENT=\"%02d/%02d %02d:%02d %s(%s) %s\">\n",$mon + 1,$mday,$hour,$min,$FORM{'name'},$FORM{'cor'}?'修正':'新規',$FORM{'subject'}; print OUT "<title>$title_b WWWC更新チェック</title>\n"; print OUT "</head>\n"; print OUT "<body bgcolor=\"#FFFFFF\" text=\"#000000\">\n"; print OUT "$title_b<br><br>\n"; printf OUT "<a href=\"$script_name\">%02d/%02d %02d:%02d %s(%s) %s</a>\n",$mon + 1,$mday,$hour,$min,$FORM{'name'},$FORM{'cor'}?'修正':'新規',$FORM{'subject'}; print OUT "</body>\n"; print OUT "</html>\n"; close(OUT); chmod (0666,"$wwwc"); } |
使用している変数の説明(使用する掲示板スクリプトに応じて、適当に変数を拾ってきてください)
$wwwc | 出力するWWWC更新チェックファイルの名前(直接指定可) |
---|---|
$mon, $mday, $hour, $min | 投稿日時(WebForumみたいに投稿日時$dateとしてそのまま文字列で定義されていることもありき) |
$FORM{'name'} | 投稿者名 |
$FORM{'cor'} | (このメッセージが)「修正」か「新規」かどうかのフラグ |
$FORM{'subject'} | 投稿記事のタイトル |
$title_b | ブラウザのタイトルバーに表示する文字(タグ無効、直接指定可) |
$script_name | この掲示板スクリプトのファイル名(直接指定可) |
&error | AX-BBS内部のエラー表示サブルーチン。実装する掲示板スクリプトにそれっぽいものが無ければ、何もせずにreturnで返してもいいと思います。 |
上にあるサブルーチンを、各掲示板スクリプトのメッセージを投稿して新しいログを出力した直後に呼び出してください。(ログ出力時に使用した変数を流用するためです^^;)
AX-BBSの場合だと axlib.pl の237行目辺り。サブルーチン自体は、アクセス時に呼び出すことになるスクリプトに記述するのが確実です(axbbs.cgi や wforum.cgi など)