Я передаю изрядное количество XML с сервера клиенту в своем приложении (250-500 тысяч каждый раз).
Как я могу сжать его на сервере и распаковать на клиенте с помощью стандартного JavaScript? Является ли это возможным?
IIS (с включенным сжатием)



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Это передача типа HTTP?
Самый простой способ - изучить сжатие на стороне веб-сервера.
XML Обычно очень хорошо сжимается.
HTTPS-переводы, да. У меня включено сжатие веб-сервера. Полагаю, это лучшее, что я могу сделать?
Во-первых, выговор и возможные обходные пути. Во-вторых, возможное безумное решение.
Если вы отправляете 250–500 тыс. Туда и обратно между клиентом и сервером, вы делаете это неправильно. Смотреть в
Запрос и отправка только той информации, которая вам нужна
Если в XML есть информация, которая не часто меняется, настройте свой веб-сервер на агрессивное http-кеширование для этих запросов. Кроме того, рассмотрите возможность отправки сообщения "информация не часто меняется" вместе с запросом начальной страницы вместо того, чтобы получать ее с сервера.
Рассмотрите возможность отправки JSON вместо XML. JSON менее подробен, чем XML, и обычно занимает меньше места. Если вашему клиентскому коду НУЖЕН объект XML, восстановите его из только что загруженного JSON.
Если вы используете apache, mod_deflate заархивирует ваши данные для клиента, который может их принять. В прошлый раз, когда я изучал кодировку gzip в IIS, она выполняла сжатие и разархивирование на диске, что быстро стало узким местом в ситуациях с высокой нагрузкой (YMMV).
Если вы одержимы попыткой сжатия в javascript, алгоритм сжатия LZ77 был перенесен на большинство языков, включая javascript.
Найдите аналогичный код для своей серверной платформы, сожмите XML, а затем скормите его в код, указанный по ссылке выше. Чтобы избежать проблем с кодированием, я бы попробовал обернуть сами сжатые данные в XML или JSON при их отправке.
Производительность сжатия Javascript будет медленной. As.molasses, поэтому я не рекомендую этот путь.
У меня были ситуации, когда мне нужно было пересылать большие объемы данных туда и обратно. Например - реальный пример здесь - статистика о количестве продаж продуктов каждый час за неделю для магазина. Я не использую JS, но это XML-данные (пока я не перепишу в JSON, что я действительно хочу сделать!)
Спасибо за нагоняй. Данные действительно меняются (и мне все это нужно) ... возможно, JSON будет лучшим решением, потому что он меньше. Я разберусь с этим, спасибо.
Stackoverflow должен очистить все свои сообщения, которые ссылаются на геогорода (глоток), и поставить на них красный флаг!
какой веб-сервер вы используете?