Нужна рекомендация для статического ресурса Node.js Gzip - PullRequest
3 голосов
/ 26 июня 2011

Итак, gzippo Connect - это хорошо?

У меня два вопроса,

1) если я хочу использовать статический javascript (я использую экспресс), я могу просто сделать gzippo и сделать это:

app.use (gzippo.staticGzip (__dirname + '/ public'));

это верно? Что делать, если клиентский браузер не поддерживает gzip (в редких случаях)? он автоматически отправит распакованную версию? также будет ли кеширован zip-файл? или сжимать для каждого запроса?

2) Если метод get приложения возвращает JSON, каков правильный метод для обработки результата сжатия? я должен сначала проверить «accept-encoding» заголовка http.request и убедиться, что он поддерживает gzip, а затем сжать результат JSON? или gzippo автоматически с этим справится?


еще один вопрос: 3) Если у меня есть несжатый файл JS (например, my.js) и сжатый вручную файл JS (например, my.js.gzip) в общедоступной папке, то этот файл будет обслуживаться, если сценарий на стороне клиента включает

я должен указать как?

что вопрос не только на node.js, но и на обычном сервере apache. :) Спасибо.

Ответы [ 2 ]

3 голосов
/ 26 июня 2011

что если браузер клиента не поддержка gzip (в редких случаях)? будет ли он автоматически отправлять распакованный версия

Согласно этой строке:

https://github.com/tomgallacher/gzippo/blob/master/lib/staticGzip.js#L121:

if (!~acceptEncoding.indexOf('gzip')) {
            return pass(filename);
        }

Будет отправлен несжатый файл.

также, будет ли кеширован zip-файл? или же сжимать для каждого запроса?

//This is storing in memory for the moment, need to think what the best way to do this.

Я прочитал это в комментарии, поэтому я предполагаю, что сейчас он хранит сжатый файл в памяти Но что еще более важно, он также использует кэширование на стороне клиента.

Если метод get приложения возвращает JSON, какой правильный метод для обработки сжать результат? я должен сначала проверить заголовки http.request «принять кодировку» и убедитесь, что поддержка GZIP, а затем сжать JSON результат? или gzippo будет автоматически справиться?

Я думаю, вы правы. Я не верю, что Gzippo будет обрабатывать другие маршруты, а только статическую папку.


Некоторые другие советы:

  • Вы должны объединить все ваши js / css при развертывании => http://developer.yahoo.com/performance/rules.html#num_http. Я не верю, что gzippo уже делает это.
  • Вы должны рассмотреть CDN для лучшей производительности.
0 голосов
/ 06 июля 2017

Подумайте об использовании некоторого промежуточного программного обеспечения облачного API, такого как AWS APIGateway, некоторых CDN, поддерживающих GZipping, и вы всегда можете создать свой собственный обратный прокси-сервер с nginx или HAproxy. Смотрите пул 3 здесь: http://goldbergyoni.com/checklist-best-practice-of-node-js-in-production/

...