2

クライアントにBreeze.jsを使用し、サーバーにBreezeControllerを使用すると、生成されるペイロードサイズは私には非効率に見えます。たとえば、次のような方法で3つのプロパティの単純なページ投影を行う場合:

.select("Property1, Property2, Property3")

各レコードのタイプは次のとおりです。

"$type":"_IB_eTB9_dNYb7IWzNREO3W5Uer5DOQ8[[System.String, mscorlib],[System.String, mscorlib],[System.String, mscorlib]]

そして明らかに、プロジェクションに含めるプロパティが多いほど、これは長くなります。多くの場合、タイプ「定義」は実際のデータよりも大幅に長く、すべての行で繰り返されます。

私は何も心配していませんか、それともこれを減らす方法はありますか?

4

2 に答える 2

3

私自身の質問に答えるために、私はこれについて心配するべきではないと言うつもりです(そしてそれはおそらくより一般的な「ネットワーク上のメタデータ」の懸念にも当てはまります)

gzip圧縮をオンにすると、私のテストでは、すべての無関係なメタデータが最終的な圧縮ペイロードのサイズにほとんど影響を与えないことが示されています。これは驚くことではないと思います。

于 2013-03-25T02:43:53.967 に答える
1

興味深い質問です。少なくとも.NETサーバーの場合、匿名タイプのjsonシリアル化はちょっと醜いので、エンティティではなくプロジェクション(selectステートメントを使用したクエリ)を要求する場合は、実際にはもっと問題になります。選択せずにクエリの結果を見ると、ペイロードがはるかに合理的であることがわかります。

とは言うものの、匿名型情報のシリアル化を簡素化するためにデフォルトのjson.netフォーマッターを変更することは可能であるはずです。特に、クライアントが「既知の」情報と一致しないことに気付いたら、クライアントでは基本的に無視するためです。タイプ。これに興味がある場合は、BreezeUserVoiceに追加してください。これらの機能のリクエストには注意を払っています。

于 2013-03-25T03:25:19.273 に答える