裏話ってほどでもないのですが、先日リリースした Gadget Party (ガジェットパーティー) で工夫したところなどをブログに書いてみようと思います。
Gadget Partyではブログパーツを用意しています。このブログパーツにはユーザーが持っているガジェットと、ユーザと似ているガジェッターを表示することができます。

当然これらの情報は、ユーザーがガジェットを登録すると変更されます。それ以外にも、ガジェットの写真が変更されたり、表示順を並べ替えたりすることでも変更されます。そのため、ブログパーツの表示もそれにあわせて変えなければなりません。
それを簡単に実現するには、ブログパーツのJavaScriptに返すJSONデータを動的に生成させればよいわけですが、ブログパーツが表示されるたびにプログラムを叩いてしまうとサーバの負荷が高くなってしまいます。特にページビューの多いブログに貼られてしまうと大変なことになってしまいます。
そこでGadget PartyではJSONPのデータを静的ファイルとしてあらかじめ書き出しておくことにしました。JSONPを書き出しているタイミングは、
- ユーザー登録が完了したとき
- ガジェットをマイガジェットに追加したとき
- ガジェットをマイガジェットから外したとき
- ガジェットを並び替えたとき
- ガジェットの写真を変更したとき
- 似ているガジェッターの計算処理が走ったとき
などなどです。これらの処理の最後にJSONPの書き出し処理を入れることで、なるべくブログパーツで表示するデータが最新の状態になるようにしています。
元々リリース直前までJSONPを動的生成させていたため、ブログパーツの表示が他のコンテンツの表示に影響を与えないように、ブログパーツのコンテナを先に生成させておいて、onloadでJSONPをリクエストするという方式をとっていました。
が、静的ファイル化しているならonloadでリクエストする必要もないので、ブログパーツのJavaScriptの実行時にJSONPをリクエストするように直しました(ここは今朝実装)。これでブログパーツの表示も高速化しているはずです。
というわけで、ブログパーツで使うJSONPを静的ファイル化しておくと色々と嬉しいことがありますよ、というお話でした。
[2010-01-12] RSS フィードの URL が変わりました。お手数ですが RSS リーダーへの再登録をお願いします。
前のエントリー: « ガジェッターのためのガジェットコミュニティー「Gadget Party」本日リリース!
次のエントリー: 梅酒が飲める飲食店データベースをAPIを使って構築する方法 »
トラックバック
このエントリーのトラックバックURL:
この一覧は、次のエントリーを参照しています: Gadget Party裏話「ブログパーツのJSONPを静的ファイル化して負荷に耐える」:
» Gadget Party裏話(その2)「ガジェットの画像がうまく取得できません!」 from F.Ko-Jiの「一秒後は未来」
前回は「ブログパーツで使うJSONPを静的化する」ことについて書きましたが、今回は Gadget Party のひとつのキモになっている「ガジェット画像の... [詳しくはこちら]
タイトル:
URL:
リンク用HTMLタグ:




