私が返すオブジェクト内で JSON を送り返す方法を見つけるのに苦労しています (' running Coldfusion8' ) 現在、Ajax
リクエストに応じてこれを送り返しています:
{
"SUCCESS":true,
"DATA": "JSON someData",
"COUNT":10
}
DATA
コンテンツのみの Ajax リクエストもあり、次のようにパーツを送り返しています。
return "HTML someData"
このようにして、圧縮されバイナリ gzip された HTML を送信できます。これはうまく機能し、「ペイロード」を 60k のデータから 2 ~ 3k に減らします。
私のページはオフラインで利用できるようにする必要があるため、クライアントですべてのマークアップ拡張を行い、データベースから JSON データのみを送信するようにしました (そうあるべきだと思います)。ただし、私の JSON 文字列は、送信していた最初の HTML よりもはるかに大きいです (たとえば、10k JSON を作成する必要がある要素にいじる必要があります。2 ~ 3k のすぐに使用できるスニペットに対して)。そのため、余分な帯域幅とクライアント側の処理で自分を罰しています。
回避策として、JSON 文字列を gzip することを試みました (動作します)。これを 2 番目の例のように送り返すことができるかどうか (動作しません...):
return "JSON someData"
text/JSON
の JSON だけでなくリターン ヘッダーでも指定すると、エラーajax-returnformat
のみが表示されます。Coldfusion
Unable to serialize binary data to JSON
質問
JSON-gzip で返送することは可能ですか? その場合、AJAX 呼び出し ( returnformat
?) とサーバー側で何を指定して、毎回失敗しないようにする必要がありますか。
ありがとう!
(注: サーバーで JSON GZIP エンコーディングを設定できるかどうかは尋ねません!)