Все смайлики
Есть ли способ сжать данные, отправленные с php (server), а затем распаковать данные с помощью javascript (client)?
Благодарю вас
Я должен согласиться с ответом @ Доменика. @ Нища Шарма – это далеко.
Единственное, что я добавлю, – это если вы хотите сделать это по принципу каждого сценария, а не настраивать весь свой сервер для сжатия всего, тривиально достичь своей цели, используя функцию gzencode () PHP в сочетании с вызовом заголовка:
http://www.php.net/manual/en/function.gzencode.php
Например, скажем, вы получаете огромный набор данных через вызов Ajax на страницу PHP. Вы можете настроить страницу PHP для использования gzencode следующим образом:
<?php $someBigString = gzencode('blahblah...blah'); header("Content-type: text/javascript"); header('Content-Encoding: gzip'); echo $someBigString; ?>
(Это, конечно, слишком упрощено, но я держу его просто.)
Ваш JS-вызов Ajax вытащит данные вниз, посмотрит заголовок gzip и автоматически распакует его. Я лично использую эту технику для очень больших наборов геокоординированных данных для Карт Google, которые могут иметь много мегабайт в размере без сжатия. Это не может быть проще!
Да; если вы настроите сервер для обслуживания данных, которые, надеюсь, вы отправляете в нормальном формате, таком как JSON, используя сжатие GZIP, тогда вы можете просто выполнить вызов Ajax в JavaScript, и он будет автоматически распакован браузером.
Чтобы установить это, скопируйте эти строки в файл .htaccess
. (Я предполагаю, что вы используете Apache, поскольку это самая распространенная платформа для обслуживания PHP.)
Если ваша накладная часть ответа меньше, чем только ваша цель, то JSON DB: сжатый формат JSON также может вас заинтересовать.