hitode909の日記

趣味はマリンスポーツですの日記です

WebMemcacheの機能追加

WebMemcacheにちょっと機能追加した.

JSONPに対応

callbackを渡すとJSONPになる.クロスドメインでも使えるようになった.
callbackを渡せばなんでもよいので,JSを書けない環境でも,imgタグとかに入れておけば,リクエストを飛ばせる.

incr, decrに対応

/incr, /decrで値を1つずつ増やしたり減らしたりできる.
nullをいきなりincrすることはできないので,先に0かなにかをセットしておく必要がある.addすると,値がnullのときだけセットできるので,とりあえず合わせて呼んでおくとよいと思う.
JSONPと合わせて使うと,簡単にページのカウンターを作れる.
こんな感じ.

<img src="http://webmemcache.appspot.com/add?counter=0&namespace=test&callback=dummy">
<img src="http://webmemcache.appspot.com/incr?key=counter&namespace=test&callback=dummy">

このエントリのページにはimgタグが仕込んであるので,アクセスするたびにカウントが増えるようになっている.

値だけをgetできる

/rawにアクセスするとJSONにダンプされていない値をもらえる.content_typeも指定できるので,画像とかをキャッシュできるはず.
キャッシュが切れてなければ,下のURLで,このページのアクセス数を見ることができる.

値がないときだけsetできる

/addを使うと,値がないときだけsetできる.
返り値はsetとちがって,setできたtrue, 既に値が入っていて,setしなかったときは,falseが返る.
初期値をsetするのに使える.

({namespace:"test", data:{foo:false, bar:false}})

その他

キャッシュは全世界で共有されるので,人とキーが被っておかしくなったり,悪意のある人に書き換えられたりする可能性がある.