4

一部の州は、ルートに簡単にマッピングできます。例えば:

'users/:id'  -->  #users/123

ここでの状態は単純な整数であるため、適切なルートを作成してその状態をルート ハンドラーに渡すのは非常に簡単です。

しかし、状態がはるかに複雑な場合 (例: JSON オブジェクト、配列の配列など)、どの戦略を使用する必要がありますか?

Gmail は、base-64 でエンコードされたトークンのように見えるもので、その状態を「トークン化」していることに気付きました。たとえば、次のようなものです。

#inbox/h223r488v8vHh4fa9a9qyUTkmb9334mN9O2s8

...そして、どういうわけかそのトークンを意味のある状態に戻すと思いますが、このプロセスは私が混乱しているものです。


関連: http://lostechies.com/derickbailey/2011/12/27/the-responsions-of-the-various-pieces-of-backbone-js/

4

1 に答える 1

1

base64 JavaScript ライブラリを使用しないのはなぜですか? そこにはトンがあります。これが 1 つです。JSON.stringifyエンコードの前後に必要になることは間違いありませんJSON.parse

次に、URL に既に含まれている場合はデコードします。その後、保存する必要はありません。デコードしてエンコードするだけです。

 routes: {
     'encoded/:code': 'decode'
 },
 decode: function(code) {
     // using the linked library
     var decoded = window.atob(code);
     // do what you want
 }

base64 は一部のブラウザーに組み込まれています: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Base64_encoding_and_decoding

于 2013-08-08T18:20:16.040 に答える