アクセス頻度に応じてリンクに色をつける
CSSのa:visited
を利用することにより、
アクセスしたことがあるリンクとそうでないリンクの色を変えることができるが、
アクセス頻度によって色を変えるともっと便利かもしれない。
Firefoxの拡張機能である
Greasemonkeyを使って
これを実装してみた。
使用例
左図のようなページで「Google」をクリックすると、
中図、右図のようにリンクの背景色が変化する。
クリックせずに何日も放置すると左図のような状態に戻る。
Greasemonkey
Greasemonkeyは、
Firefoxの機能拡張を利用することによって、
ユーザが参照したWebページ上でJavaScriptを自働実行させるシステムである。
Greasemonkeyの機能を利用して<a>タグをフックしてアクセス数をカウントし、
それに応じて背景色を変えることにすれば、
アクセス頻度に応じてリンクの色を変えることができる。
Greasemonkeyについては
Wired記事や
Firefoxまとめサイト
に詳しい解説がある。
アクセス状況と背景色のマッピング
ページのアクセス状況を背景色にマッピングするには、
Unix Magazine 2003年8月号で紹介した、
Webページの鮮度の視覚化
と同じ手法を利用することにする。
Webページへのアクセス履歴をすべて記録するとデータが膨大になる可能性があるので、
以下のような方針で鮮度を計算することにする。
- 鮮度は指数的に減少する。たとえば一日ごとに鮮度が半分になる。
- ページにアクセスすると鮮度は指数的に回復する。
たとえば、アクセスするごとに最大鮮度との差が半減する。
この方針の場合、
Webページごとに最終アクセス時刻とそのときの鮮度だけを
記録しておけばよいことになる。
実装
GreaseMonkeyには
GM_setValue()
,
GM_getValue()
という関数が用意されており、
これらを利用するとデータを永続的に保存することができる。
これらを使って、URLごとにアクセス頻度をセーブしておけばよいことになる。
必要な処理は以下のとおり:
- すべての<a>タグに対して、
アクセス頻度を更新する関数を
onclick
に定義しておく。
- アクセス頻度に応じてリンクの背景色を設定する
インストール
Greasemonkeyをインストールしてから
colorlink.user.js
スクリプトをGreasemonkeyに登録する。
http://pitecan.com/ に対してだけスクリプトが有効になっているが、
これは適当に修正する。
2005/11/3 Toshiyuki Masui @ pitecan.com