@kyanny's blog

My thoughts, my life. Views/opinions are my own.

Backbone.sync

Backbone.sync を読んだ。ざっと眺めただけ。これだけ小文字 (Sync ではなく sync) なのがなんか気になる。と思ったらこれは new するためのクラス(関数)じゃなくて単なる関数だからだった。

http://documentcloud.github.com/backbone/docs/backbone.html

  • リモートサーバの API を呼び出して、 Backbone.Model なインスタンスのデータを取得したり更新したりする永続化ストレージと通信するためのクラス。デフォルトでは Rails の resources ルーティングのルールを想定した作りになっていて、違う感じの API をバックエンドにする場合はこのクラスを上書きしろ、という感じ。
  • ちょっとした変更は全部書き換えなくていいように専用の変更用インターフェースがある。 emulateHTTP とか。
  • デフォルトではリクエストは JSON でおくる。 emulateJSON が有効だとフォーム送信の形式を使う。
  • 送信用パラメータとかリクエストヘッダとかを調整した上で、最後は $.ajax を呼び出して丸投げしている。なので、 jQuey なりそういうライブラリが別途必要。このへんは割り切ってるなーと思う。

要するに、単なるパラメータ調整用のラッパー関数なので、短いしやってることもすぐわかる感じだった。 xhr.setRequestHeader('X-HTTP-Method-Override', type); とかは、まぁこれ使えば覚えておく必要はないんだけど、これを使わないで自前でこういう風にリクエストをおくるときに、こういうリクエストヘッダの指定漏れとかでうまく動かなくてデバッグに苦労するとかよくあるので、見たことがあるだけでも記憶の底にひっかかっていて解決の糸口になったりするので、かけ捨ての保険みたいな意味で読んでおいてよかったと思う。