2016-12-14 16 views
1

Вкратце - По сути, я пытаюсь создать приложение для одной страницы Heavy-client & Light-Server.Как получить javascript для разбора файла json.gz в браузере

Я получаю сжатый файл данных JSON с помощью простого тега HTML-скрипта.

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

myjson.json файл имеет содержание аналогичен:

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

Только это о 6MB. Код javascript parse.js имеет логику для управления созданием веб-страницы с использованием данных из media_libary переменных, объявленных в файле myjson.json.

Сжатие до myjson.json.gz уменьшено до 650 КБ. Это позволяет быстрее загружать время.

Я гугле пути либо:

(1) Найти код, чтобы получить JavaScript, чтобы раздуть файл GZip в myjson.json, а затем получить это происходит

(2) Найти код, чтобы получить JavaScript для прочитайте объект json из файла gzip

Я ничего не нашел на нем.

Я ищу способ сохранить время сети для передачи всего данных.

Идея получить сервер для отправки JSON, который требуется только для этого, перешел мне на ум, но это противоречит моему намерению держать сервер светлым и заставить моего клиента выполнять поиск, сортировку, фильтрацию и презентацию (тяжелый клиентский материал).

Есть ли способ заставить сервер просто отправлять данные JSON, сжатые только для распаковки и работы в браузере?

Спасибо.

Я использую python -m CGIHTTPServer как мой сервер.

Это инспектор сетевых операций браузера.

network activity

+0

Попробуйте установить [тип mime вывода CGI-скриптов] (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: Какой веб-сервер вы используете? Apache? Nginx? –

+0

@Connor Gurney Python's CGIHTTPServer – anu