2011-07-31 14 views
2

私は、サーバーがHTML自体に生成するWebページの骨格スナップショットを保存しています。したがって、Ajax要求をサーバーに送り返すと、サーバーは、クライアントが見たページに適切な差異を返信してください。クライアントのHTMLにデータを格納する方法/場所

このスケルトンは基本的にツリーです。各ノードはコンポーネント(メニューバー、サイドバー、コンテンツ、コメントなど)を表し、子はそのサブコンポーネントです。

現在、Base64ed GZiped JSONedデータとして保存しています。純粋なJSONの場合、約4000文字かかりますが、エンコードには約500文字かかります。 (興味のない、pythonのPickleは〜3000文字がかかりますが、最大2000まで圧縮します)

私の質問は、私がデータをクランチダウンするために何かできますか? Base64よりもコンパクトなWeb安全なデータ形式ですか? GZipよりコンパクトな圧縮は何ですか? gzip関数の "レベル"を6から9に上げると、わずか(約20文字)の節約になりました。

もう1つの質問は、このデータはどこにありますか?現在のところ、隠れた入力フィールドの価値がどこかにあるだけです。ある入力の属性、他のタグの属性、表示されたdivの内容が隠されているかどうかはまったく問題ですか?それとも気にする価値がないのですか?

答えて

1

私はそれを隠しフィールドに格納する理由はありません。私は隠されたフィールドにそれを格納することをお勧めしません。あなたはおそらくJsonを保存するためにJquerysのデータメソッドを使うことができます。あるいは、スコープが正しいjavascript変数に格納するだけです。

私はDIFFを取得するためにどのようなアプローチをとっているのかよく分かりません。クライアントからサーバーに格納されたデータを送り返しているのですか、またはサーバーからクライアントにデータを送信していて、それをクライアント側でDIFFすればよいでしょうか?

圧縮については、ネガもあるので、圧縮解除に時間を費やす必要があるので、あまりにも集中してください。場合厥あなたはおそらく、データを圧縮する必要があるのであればこれをチェックするために、現在のものは

compression + decompression < time taken for transfer 

だろう。

+0

私はサーバー上でdiffingしてクライアントにdiffを送信しています。私はどちらにしてもかまいませんが、javascriptが好きではなく、コーディングを最小限に保ちたいと思います。私は圧縮に必要な時間を確認します。たぶん私はそれをJavaScriptの変数に書くべきでしょう。 –

+0

はい私は同じことをお勧めします.. – Baz1nga

関連する問題