mixi Engineers’ Blog » デコリンク(URL展開)機能をリリースしました
開発者ブログなのにプレスリリースみたいなんだぜ。
実装は Jemplate を使っているようです。Ingy さんやね。
http://mixi.jp/static/js/decolink/decolink.js の do_decolink に id をわたすと、dl_rules にはいっている規則をもとに extract_decolink が JSON API で情報をとってきて Jemplate で展開して置き換えています。
JSON API は以下の3つ。mixi のクッキーを食べた状態でアクセスできることを確認しました。
- http://mixi.jp/atom/music/track/r=1/ID
- http://mixi.jp/atom/music/artist/r=1/ID
- http://mixi.jp/atom/review/r=1/ID
ID は mixi 内での通し番号なので、アマゾンのレビューとマッシュアップ!とかは難しそう。decolink.js では ?alt=json&charset=euc-jp (とキャッシュ避けっぽい乱数) をくっつけてますが、省略しても動作はかわりませんでした。付けても alt は無視されるし charset は euc-jp 以外怒られます。
はてなスター とか、JavaScript はサーバーの負荷をあげないかわりに、クライアント側に負荷をかけてしまって、つまりは利用者の体感速度への影響が大きいのでむずいのですが、こと mixi に限定していうなら
- DOM 経由でアクセスするために id とか class とかを適切にふらざるをえなくなる
- API として使いやすいインターフェースがばれる
という二点で、どんどんやると良いと思いました。