Файлы Struts 2 и Dojo слишком тяжелые и влияют на производительность сайта.Какие-нибудь средства правовой защиты?

StackOverflow https://stackoverflow.com/questions/327820

Вопрос

Хорошо..мы разработали приложение j2ee, используя возможности ajax struts2.Мы обнаружили, что реализация dojo происходит довольно медленно.Мы сделали следующие вещи:1.Пользовательская сборка библиотеки додзё.(Увеличение Dojo.js с 240 КБ до 350 КБ) 2.Вытащил все статические вещи из банки со стойками и оставил их снаружи.

Производительность значительно улучшилась.Но все же он довольно тяжелый, как вы можете догадаться, его размер составляет 350 КБ.

Struts2 ajax должен быть таким тяжелым?или есть ли более легкая реализация?


Редактировать:В своем приложении я использовал Firebug и YSlow.Несколько изменений, которые значительно улучшили мою ситуацию, упомянуты ниже:

  1. Пользовательская сборка додзё (уменьшено количество операций ввода-вывода)
  2. Переместите статические файлы из банки Struts (очень помогло)
  3. настройте свой сервер на сжатие ответа (уменьшите размер ответа до 1/3)
  4. Уменьшите количество изображений на вашем сайте (это очевидно).

Будем держать в курсе дальнейших изменений..

Это было полезно?

Решение

Прежде всего убедитесь, что вы сделали все на сервере для облегчения кэширования (например, установили правильные заголовки HTTP, сжатие, кэширование на стороне сервера, кэширование восходящего потока и т. д.).Видеть Улучшение производительности… Больше подробностей.

Цель состоит в том, чтобы максимально сократить ввод-вывод — используйте Firebug или любой другой инструмент мониторинга сетевого трафика, чтобы увидеть, какой объем передается туда и обратно.Постарайтесь минимизировать количество запросов ввода-вывода и общее количество байтов.

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

Если пользовательская сборка и настройки на стороне сервера не помогли, рассмотрите возможность реструктуризации вашего веб-приложения, чтобы сделать его более легким.Примеры:

  • Оцените технику заставки, описанную в ссылке выше.
  • Если вы используете много разных виджетов форм, посмотрите, действительно ли это необходимо, и вернитесь к обычным элементам DOM, таким как «ввод», «кнопка», «текстовое поле», «выбрать».
  • То же самое касается виджетов макета.Посмотрите, может ли вам помочь простой CSS.
  • Оцените построение Dojo по слоям вместо одного монолитного файла dojo.js, чтобы веб-страницами загружалось только необходимое подмножество.Подробности смотрите в Система пакетов и пользовательские сборки.

Зарабатывая на жизнь созданием веб-приложений с помощью Dojo в течение последних 2 лет, я до сих пор не видел того, которое нельзя было бы оптимизировать должным образом до тех пор, пока оно не будет полностью принято и воспринято конечными пользователями как «быстрое», «проворное» и «легкое». .

Другие советы

Сначала убедитесь, что вы следуете этому FAQ: http://struts.apache.org/2.x/docs/ производительность tuning.html

Я обычно переписываю свою собственную тему вместо использования темы ajax struts2, в которую встроено dojo. Таким образом, я могу использовать любой набор инструментов, который я хочу использовать (jQuery). Наибольшие улучшения производительности я увидел, когда скопировал папку с шаблонами из jar в корневой веб-каталог для веб-приложения.

В последний раз я проверял, что Struts выпускает релиз Dojo (0.4), которому уже 2 года. Dojo переписал версию 0.9 / 1.0, которая имела значительный прирост производительности и уменьшил размер кода. Вы должны убедиться, что вы используете последнюю версию Dojo (текущая версия 1.2.3) и использовать сборку и советы от Евгения, описанные выше.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top