Как я могу заставить ASP.NET AJAX отправлять свой ответ JSON со сжатием GZip? - PullRequest
12 голосов
/ 28 октября 2008

У меня включено сжатие в IIS7, и оно работает, как и ожидалось, для всех ответов, кроме тех, которые созданы ASP.NET AJAX. У меня есть веб-сервис, который предоставляет данные клиенту. Когда веб-сервис вызывается напрямую, он правильно сжимается. Однако при вызове через ASP.NET AJAX ответ JSON не сжимается.

Как мне заставить ASP.NET AJAX отправлять свой ответ JSON со сжатием GZip?

Ответы [ 4 ]

5 голосов
/ 06 ноября 2008

IIS7 использует кодировку содержимого, чтобы решить, следует ли сжимать ответ (при условии, конечно, что браузер может принять gzip). Они установлены в applicationHost.config, и по умолчанию список равен

<dynamicTypes>
     <add mimeType="text/*" enabled="true" />
     <add mimeType="message/*" enabled="true" />
     <add mimeType="application/x-javascript" enabled="true" />
     <add mimeType="*/*" enabled="false" />
</dynamicTypes>

Если вы вызываете веб-сервис напрямую, XML-ответ имеет тип контента text/xml, который сжимается. При вызове AJAX ответ JSON имеет тип содержимого application/json, поэтому он не сжимается. Добавление следующего в applicationHost.config должно исправить это ...

     <add mimeType="application/json" enabled="true" />
1 голос
/ 30 октября 2008

Какой браузер вы используете? В IE 6 есть ошибка, приводящая к ошибкам сжатия. Поэтому ASP.NET AJAX отключает сжатие в браузерах IE 6:

http://weblogs.asp.net/scottgu/archive/2005/06/28/416185.aspx

Кроме того, вы включили сжатие для файлов ASMX?

0 голосов
/ 20 ноября 2008

Как правило, вы не захотите этого делать, если не возражаете против того, чтобы на ваши приложения расходовать энергию на несколько порядков ...

Также не только сервер-процессор, но и клиент-процессор становится проблемой, когда вы делаете это ...

Это завершается тем, что ваше приложение становится намного медленнее, если вы GZip все ваши ответы Ajax ...!

0 голосов
/ 05 ноября 2008

В последний раз, когда я проверял, IZI (при правильной настройке) выполняет gzipping - и, конечно, когда браузер отправляет требуемые заголовки

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...