Как сжимать данные на лету с помощью стека Microchip TCP/IP

Я реализую gzip на нашем встроенном веб-сервере Microchip TCP/IP для сжимать статические веб-ресурсы (файлы html, js и css) — файлы сжимаются автоматически, когда мы загружаем веб-сайт на сервер Microchip.

Однако у меня есть веб-страница, которая создается «на лету» (это не статическая html-страница), и эта страница содержит много данных (~ 2 МБ).

Чтобы ускорить время загрузки (для клиента), я хотел бы сжать данные перед отправкой клиенту. Это возможно? Или мы ограничиваемся сжатием только статических файлов?


person Jed    schedule 10.02.2014    source источник


Ответы (2)


Выполняет ли встроенный веб-сервер сжатие статических файлов или вы сжимаете их, а затем загружаете? В последнем случае вы, вероятно, можете портировать библиотеку zlib. См. этот вопрос для получения подробной информации о том, как сжимать буфер на лету. .

person David LaPorte    schedule 11.02.2014

Динамическое сжатие займет много времени. Я предлагаю вам иметь статический скелет веб-страницы, сжатый gzip, с динамически загружаемым содержимым:

1) по запросу клиента вы отвечаете статической заархивированной веб-страницей;

2) на этой странице есть код javascript, поэтому клиент запускает его;

3) код javascript использует AJAX для отправки запроса на определенную веб-страницу. (/ajax.html, например);

4) на этой странице запрашивается только динамический контент, несжатый;

5) в этом ответе javascript анализирует его и помещает данные в нужное место на странице;

6) прибыль.

person kirill    schedule 11.02.2014