2016-12-14 13 views
1

要約すると、基本的にはHeavy-client & Light-Serverシングルページアプリケーションを作成しようとしています。ブラウザでjson.gzファイルを解析するためのjavascriptの入手方法

私は、圧縮されたJSONデータファイルを単純なHTMLスクリプトタグで取得しています。

<script type="text/javascript" src="myjson.json.gz"></script> 
<script type="text/javascript" src="parse.js"></script> 

myjson.jsonファイルは次のようにコンテンツがあります:のみ、それは6メガバイトについてです

media_library={some:"json", data: "here"}

parse.js JavaScriptコードには、のデータがmyjson.jsonというファイルで宣言されたデータを使用してWebページの作成を操作するロジックがあります。

myjson.json.gzに圧縮すると、サイズが650KBに縮小されます。これにより、より高速なロード時間が可能になります。

私はどちらかの方法をググ:

(1)Javascriptをmyjson.jsonし、それが

を軌道に乗るためにgzipファイルを膨らませるために取得するためのコードは(2)にはJavaScriptを取得するコードを探しますgzipファイルからjsonオブジェクトを読み取ってください。

どちらも見つかりませんでした。

私は、データ全体を転送するネットワーク時間を節約する方法を模索しています。

代わりに必要なだけのJSONを送信するという考えは私の心を越えましたが、それはサーバーを明るくしてクライアントに検索、並べ替え、フィルタリング、プレゼンテーション(重いクライアントのもの)。

JSONデータを圧縮解除してブラウザで処理するようにサーバーに送信する方法はありますか?

ありがとうございました。

私はpython -m CGIHTTPServerを使用しています。

これはブラウザのネットワークアクティビティインスペクタです。

network activity

+0

[CGIスクリプトの出力のMIMEタイプ](https://docs.python.org/2/library/cgi.html)を["Content-Type:application/gzip"](http: /superuser.com/a/960710)。 FWIW圧縮ファイルはJSONP(javascriptファイル)よりもJSON( – traktor53

答えて

1

GZIPのように、圧縮された転送符号化を使用します。サーバーが既にこれを提供するように設定されている可能性があります。また、ブラウザーは既にそれを処理することもできます。その後、何もする必要はありません。ボーナスとして、ブラウザはサポートするエンコーディングを指定できます。

https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Transfer-Encoding

サーバーに依存実装の詳細。通常は単純な設定行です。非常に頻繁にヒットしたリソースがある場合は、あらかじめ圧縮してサーバーが送信するだけで済みます。

+0

)です。チェックしてください。ありがとう。サーバーに何らかの方法でヘッダーを変更させる必要がありますか? – anu

+0

@anu:どのWebサーバーを使用していますか? Apache? Nginx? –

+0

@Connor Gurney PythonのCGIHTTPServer – anu

関連する問題