2015-08-30 2 views
1

Я пытаюсь улучшить производительность своего веб-приложения. Это веб-приложение на основе Java &, развернутое на сервере облаков амазонки с Jboss & apache.Веб-приложение J2EE Настройка производительности

В приложении есть одна страница, которая занимает 13-14 секунд. Функциональность настолько велика, что есть около 100+ HTTP-запросов, которые выполняются во время загрузки страницы. Файлы css Js & css загружают слишком много времени.

Итак, я переместил весь код Javascript с моей страницы JSP в новые JS-файлы. Минимизированы файлы css JS &. Тем не менее, нет большой разницы в времени загрузки страницы.

На этой странице есть данные dojo, которые требуют времени для загрузки.

Есть ли какой-либо другой подход, который я должен попытаться настроить эту страницу?

Можно ли что-то сделать на уровне Jboss или Apache?

+0

Возможно, вам нужно немного поподробнее, чем это для всех, кто сможет вам помочь, например, использовать ваш браузер для создания профиля производительности. – thomasfuchs

+0

Извинения за вопрос не будучи точным, так как я новичок здесь. Не могли бы вы рассказать мне любой api, в котором я могу связать свои файлы css и js во время сборки или времени выполнения для Java-приложения? – Bhavik

ответ

1
  1. Применить кэширование изображений и т.д. More here
  2. Использование CDN для любых внешних библиотек, которые вы используете (например, JQuery). More here
  3. Используйте библиотеку для ваших js-скриптов, например RequireJS, для оптимизации ваших файлов css и js. Вы можете объединить (объединить несколько файлов js к одному) вашего кода. Это уменьшит количество вызовов ajax (это то, что делает браузер, когда видит зависимость js или css) (Как отмечает @Ken Franqueiro в разделе комментариев, у Dojo уже есть механизм для этого). More here
  4. Оптимизируйте ваши изображения. Используйте соответствующие размеры. Не используйте полноразмерные размеры, если вы только собираетесь использовать его для контейнера 10x10. Используйте спрайты, если это возможно. More here
  5. Показать сообщение/загрузчик, чтобы показать пользователю некоторый прогресс. Это позволит свести к минимуму беспокойство пользователя More here
  6. Если вы загружаете данные, которые занимают слишком много времени, затем показывайте страницу и загружайте данные впоследствии. Это также даст определенный смысл прогресса пользователю.
  7. Если ответ очень большой, вы можете сжать свои данные ответа. Будьте осторожны, хотя браузеры, поддерживаемые вашим приложением, могут обрабатывать сжатую информацию по умолчанию или добавлять настраиваемый механизм для распаковки данных. More here

Используйте некоторые средства профилирования, как Chrome Development Tools или FireBug for Mozilla. Сделайте снимок сетевого трафика и проверьте, где находится узкое место. В Chrome вы нажимаете F12, а затем на вкладке Network.

+1

FWIW, Dojo также имеет систему сборки (несколько похожую на RequireJS), которая позволяет вам определять «слои», чтобы свести к минимуму количество запросов, которые необходимо выполнить для зависимостей модуля на стороне клиента. Существует [сборник учебников] (http://dojotoolkit.org/documentation/tutorials/1.10/build/index.html), хотя я бы сказал, что он ошибается на стороне чрезмерно исчерпывающего. –

+0

Я никогда не использовал Доджо, поэтому я этого не знал. Спасибо за информацию. – alkis

+0

Большое спасибо за ваш ответ. – Bhavik

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