Backbone.js を使ってクライアント MVC で実装したとしても、画面遷移のたびにサーバーと通信していては、データが表示されるまで結局ユーザーは待たされます。操作が固まらない、ただそれだけ。それに何度も通信していては、サーバー側に余計な負担もかかります。取得したデータが頻繁に更新されないものなら、クライアント側でキャッシュしておかないと。 さて、どう実装しましょう。真っ先に思いついたのは、Backbone.Model や Backbone.Collection を継承したクラスに、fetch や save を呼び出してレスポンスをキャッシュするメソッドを追加する方法。シンプルですけど、キャッシュを扱うコードが分散してしまうのが難点かな。 Backbone.Model や Backbone.Collection が通信を行うとき、Backbone.sync メソッドを必ず経由します。