2016-12-14 4 views
1

Kurz gesagt - Im Wesentlichen versuche ich eine Heavy-client & Light-Server Single Page-Anwendung zu erstellen.So erhalten Sie JavaScript zu analysieren json.gz-Datei im Browser

Ich erhalte eine komprimierte JSON-Datei über ein einfaches HTML-Skript-Tag.

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

myjson.json Datei hat Inhalt ähnlich wie:

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

Nur, es geht um 6 MB. Der parse.js JavaScript-Code hat Logik, um die Webseite mit den Daten aus media_libary Variablen zu manipulieren, die in myjson.json Datei deklariert sind.

Durch Komprimierung auf myjson.json.gz wurde die Größe auf 650 KB reduziert. Dies ermöglicht eine schnellere Ladezeit.

Ich googeln nach Möglichkeiten, um entweder:

(1) Finden Sie Javascript-Code zu erhalten, die gzip-Datei aufzublasen myjson.json und dann loslegen

(2) Finden Sie Javascript-Code zu erhalten, Lesen Sie das JSON-Objekt aus der Gzip-Datei

Ich konnte nichts auf beiden finden.

Ich suche nach einer Möglichkeit, Netzwerkzeit für die Übertragung der gesamten Daten zu sparen.

Die Idee, den Server dazu zu bringen, JSON zu senden, der nur benötigt wird, ist mir in den Sinn gekommen, aber das widerspricht meiner Absicht, den Server hell zu halten und meinen Client zum Suchen, Sortieren, Filtern und Präsentieren zu zwingen).

Gibt es eine Möglichkeit, dass ich den Server dazu bringen kann, die JSON-Daten nur zu komprimieren, um sie zu dekomprimieren und im Browser zu bearbeiten?

Danke.

Ich verwende python -m CGIHTTPServer als meinen Server.

Dies ist der Netzwerkaktivitätsinspektor des Browsers.

network activity

+0

Versuchen Sie, den [MIME-Typ der CGI-Skriptausgabe] (https://docs.python.org/2/library/cgi.html) auf ["Content-Type: application/gzip"] zu setzen (http://superuser.com/a/960710). FWIW die komprimierte Datei ist mehr JSONP (eine JavaScript-Datei) als "JSON" – traktor53

Antwort

1

eine komprimierte Übertragungscodierung verwenden, wie gzip. Es ist wahrscheinlich, dass Ihr Server bereits so konfiguriert ist, dass er Ihnen dient, und Ihr Browser kann auch schon damit umgehen. Dann müssen Sie nichts tun. Als Bonus kann der Browser angeben, welche Kodierungen er unterstützt.

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

Die Besonderheiten auf dem Server abhängig zu implementieren. Normalerweise ist es eine einfache Konfigurationszeile. Wenn Sie eine Ressource haben, die sehr häufig betroffen ist, können Sie sie auch vorkomprimieren, damit der Server sie nur senden muss.

+0

einige Details zu der Frage hinzugefügt. Bitte prüfe. Vielen Dank. Muss ich den Server dazu bringen, die Header in irgendeiner Weise zu ändern? – anu

+0

@anu: Welchen Webserver benutzen Sie? Apache? Nginx? –

+0

@Connor Gurney Pythons CGIHTTPServer – anu

Verwandte Themen