2012-02-20 2 views
0

В процессе производства время отклика очень велико из-за загрузки javascript, поэтому я ищу способ улучшить его, не меняя ни одной строки кода Обратите внимание, что я использую:Улучшение отклика времени проекта RoR

  • Рубин на Rails 3.2
  • Passenger (Apache2)

Пожалуйста давать советы

+0

Да я имею в виду инициализации скрипта и CSS время. для загрузки корневой страницы требуется более 30 секунд! поэтому я ищу способ уменьшить это время ответа. – Dupont

+0

Возможно, вы загружаете много скриптов, которые не обязательно должны быть там: ваша корневая страница нуждается в 28 000 строках JS-файла? Возможно, вы можете разделить свой код на разные файлы. –

+0

Загружен js - это приложение.js file, поэтому он тянет все le js, что означает 28000 строк – Dupont

ответ

2

Я вас понимаю, что вы не можете изменить приложение, но придется загрузить 100kb из CSS и 1Мб JS для первой страницы кажется довольно чрезмерным. Я бы серьезно посмотрел на попытку сократить ресурсы, чтобы они загружались по требованию.

Там не все, что многие «исправления», которые оставляют кодовую в одиночку, но некоторые из них являются:

  • Сжатие ресурсов (например, с помощью «Content-Encoding = GZIP», http://betterexplained.com/articles/how-to-optimize-your-site-with-gzip-compression/).
  • Оптимизируйте порядок ресурсов (возможно, потребуются незначительные изменения кода - http://code.google.com/speed/page-speed/docs/rtt.html#PutStylesBeforeScripts).
  • Параллелизирует загрузки по именам хостов (возможно, потребуются незначительные изменения кода - http://code.google.com/speed/page-speed/docs/rtt.html#ParallelizeDownloads).
  • Поместите контент ближе к пользователю (используйте CDN).
  • Улучшение сквозной сетевой инфраструктуры.
  • Использование ресурсов aync (это может только дать вам иллюзию более быстрого приложения. Страница может начать рендеринг раньше, но в зависимости от характера вашего JS приложение все равно может быть использовано только после того, как оно было загружено - http://code.google.com/speed/page-speed/docs/rtt.html#PreferAsyncResources)
  • Используйте заголовки истечения срока действия HTTP будущего, чтобы увеличить вероятность того, что пользователь, который уже посетил сайт, не нуждается в загрузке содержимого снова.
0

груза, JS из контентной сети доставки.

Если вы показываете некоторую информацию профилирования для времени загрузки (достаточно профилировщика инструментов разработчика Chrome), мы сможем дать лучший совет.

+0

Инструменты разработчика Chrome показывают, что: содержимое css-файла (97,7KB) занимает 14,53 с, а файл js (998KB) занимает 9,93 с – Dupont

+0

. Тогда с доставкой CSS происходит что-то не так. Вы должны это оптимизировать. Кроме того, кажется, что ваш интернет может быть медленным, или сервер может быть перегружен. – x10

+0

в файле css имеется около 2 800 строк и 28 000 строк в файле js. У меня есть другое приложение на сервере, написанное на php, где ответ быстро, поэтому я уверен, что сервер не перегружен и что мой интернет достаточно быстро – Dupont

0

Ожидается, что это просто пассажир, вращающийся, но должен произойти только при загрузке первой страницы после развертывания.

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

Один из вариантов, чтобы всегда иметь по крайней мере один экземпляр работает с помощью этой опции:

PassengerMinInstances 1 
Смежные вопросы