にしし ふぁくとりー:西村文宏 個人サイト

Presented by Nishishi via Movable Type. Last Updated: 2019/02/01. 10:45:33.

今動作しているCGIが最新版なのかどうかを動作画面内でユーザに知らせる方法

最新版かどうかをお知らせするのに使った方法

拙作のフリーCGIのうち「てがろぐ」や「Fumy News Clipper」には、管理画面で下図のように新バージョンの存在をお知らせする機能があります。
とはいえ、特にユーザ側の情報は送信していません。
そもそも、現在のバージョンが最新版なのかどうかの判定処理自体を、サーバ側でもクライアント側でもしていません。(^_^;)
そのような判定処理をわざわざしなくても、最新版なのかどうかが分かるようになっています。

最新版チェックとバージョンアップ版の存在案内

上図の左側が「最新版が動作している場合」の表示。右側が「より新しいバージョンが存在する場合」の表示です。
上記のように表示が分かれるのですが、「最新版が存在するかどうか」というような判定処理は一切していません。

このような「今動作しているCGIが最新版なのかどうか」を知らせる方法は簡単で、画像を使っているだけです。

最新版かどうかを埋め込んだ画像でお知らせする方法

最新版のバージョン情報をお知らせするサーバには、以下のようなファイル名で画像が置いてあります。
例えば、Ver 1.2.3 が最新版のときは、以下のようになっています。

  • 画像「 ver1.2.3.png 」の中身は 最新版をお使いです
  • 画像「 ver1.1.2.png 」の中身は 新しいバージョンがあります
  • 画像「 ver1.0.1.png 」の中身は 新しいバージョンがあります
  • 画像「 ver1.0.0.png 」の中身は 新しいバージョンがあります

もし、新しいバージョンが公開されて、最新版が Ver 1.3.0 になったときには、以下のようになります。

  • 画像「 ver1.3.0.png 」の中身は 最新版をお使いです
  • 画像「 ver1.2.3.png 」の中身は 新しいバージョンがあります
  • 画像「 ver1.1.2.png 」の中身は 新しいバージョンがあります
  • 画像「 ver1.0.1.png 」の中身は 新しいバージョンがあります
  • 画像「 ver1.0.0.png 」の中身は 新しいバージョンがあります

単純ですよね。(笑)

要は、バージョン番号をファイル名にした画像ファイルを参照しているだけです。
Ver 1.3.0 のCGIでは、 ver1.3.0.png というファイル名の画像を読み込むように書いてあります。
Ver 1.2.3 のCGIでは、 ver1.2.3.png というファイル名の画像を読み込むように書いてあります。

参照する画像のファイル名(URL)は、どのバージョンが最新版なのかに関係なくずっと一定です。
なので、「最新版かどうか」を判定するような処理が要りません。

もし Ver 1.2.3が最新版なら、画像ファイル ver1.2.3.png は「最新版です」という意味の画像にします。
もっと新しい ver 1.3.5を公開したなら、画像ファイル ver1.2.3.png は「アップデート版があります」という意味の画像に差し替えます。
同時に、 ver1.3.5.png を「最新版です」という意味の画像にします。

こうすると、単に画像ファイルを見に行くだけで、バージョンアップ版の存在を伝えられます。
判定処理が要らないので、ユーザ側の情報をサーバへ送る必要もありませんし、サーバ側にある最新版案内情報などを受け取る必要もありません。

余計な情報を集めることなく、お知らせだけをしたい

フリーCGIの更新情報を得るためだけに、メールアドレスなどの個人情報を登録したいと思う人々は少ないでしょうし、どんな小さな情報でも提供することなくツールを利用したいと思うことでしょう。

とはいえ、自ら「バージョンアップ版がないかな?」と定期的に探してくれる人々もまた、ほんのごく少数でしょう。

なので、個人情報を登録したり送ったりするようなことは一切ないままでも、新バージョンの存在はお知らせしたいわけです。(^_^;)
上記で説明したように小さな画像ファイルを参照するだけなら、手軽だし、通信量も少なくて済むし、クライアント側の情報を何も送らないのでなかなか良いのではないかと思います。

元画像は2種類だけ

とはいえ、もちろん毎回のバージョンアップ時に画像ファイルを手動で作成するのは面倒です。
実際には、「最新版です」の画像と「アップデート版があります」の画像の2つだけを置いておいて、リクエストが来たファイル名(=バージョン番号)に応じて動的にどちらかの画像を返すように作っておく方が良いでしょう。

例えば、

  • リダイレクト機能を使って、「最新版です」画像か「アップデート版があります」画像かに振り分ける。
  • ファイル名に応じて「最新版です」画像か「アップデート版があります」画像かを返すスクリプト(CGIやPHPなど)を用意する。

……というような方法があると思います。
これなら、ファイル名を元にして適切な画像を返せますから、いちいち画像を作る必要はありません。
今のところ、私は後者の方法を使っています。その方が「今の最新バージョンは何か」というデータを1つ登録しておくだけで済ませられますから、より管理が楽ですので。

というわけで、
ユーザ側の情報を送信させたりせずに、今動作しているCGIが最新版なのかどうかを動作画面内でユーザに知らせるために私が採用している方法の話でした。

コメント

コメント数: 0件

コメント投稿欄 この日記に対するコメント投稿を歓迎します。



※本文中にURLは書けません。(書くと投稿が拒否されますのでご注意下さい。)

※ご投稿頂いた内容は、掲載前に管理者が確認する設定にしている場合があります。たいていは数日以内には表示されるはずですので、気長にお待ち願います。m(_ _)m

著者紹介


にしし(西村文宏)

にししでございます。本書いたり記事書いたりしてます。あと萌えたり。著書5冊発売中です(Web製作系4冊+小説1冊)。著書や記事は「西村文宏」名義。記事は主にAll Aboutで連載。本の最新刊は2011年3月に発売されたライトノベルでございますよ。

Twitter:にしし/西村文宏
にしし/西村文宏 on facebook にしし/西村文宏 on mixi にしし/西村文宏 on Google+ フォローはお気軽に!

にしし(西村文宏)連絡先
☕ コーヒーをおごる

著書一覧と詳細

関連する記事など

※下記には、本サイト内外の関連記事などが8本くらい自動で表示されています。

にししふぁくとりー Sakura scope内限定での主要なカテゴリ

--- 当サイト内を検索 ---