В настоящее время я работаю над веб-приложением, использующим Flash, Javascript и JSP (работает на Apache Tomcat).Я пытаюсь ускорить это.
Приложение встроено в другую страницу с помощью <iframe>
.Часто мы много раз встраиваем приложение в одну страницу.
Страница в iframe - это JSP с некоторым Javascript и Flash SWF.Базовая структура:
<html>
<head>
<script src="script1.js"/>
...
<script src="script8.js"/>
</head>
<body>
<object>
<param ... />
<param ... />
<param ... />
<embed src="myFlash.swf" ...>
</embed>
</object>
</body>
</html>
После некоторого неформального тестирования я обнаружил, что для каждого приложения, добавляемого на страницу, загрузка страницы занимает дополнительные четыре секунды.Это линейное увеличение во времени, которое имеет смысл для меня.
LoadingTime = (4 seconds)*NumberApplications + (3 seconds)
Я думаю, что это кандидаты на медлительность:
- Javascript
- Flash
- Обработка на стороне сервера
- Время загрузки
Javascript
Я использовал Firebug для профилирования Javascript, но ни одна функция не занимает большой процент времени, а общее время кажется очень маленьким.Вот приблизительные результаты:
- Функция A занимает 25% времени.Его время (включая вложенные вызовы) составляет 1,5 секунды *.Это кажется почти пренебрежимым.
- Функции B, C, D, E занимают менее 10%
- Существует множество других функций, которые занимают менее 2% общего времени
Похоже, что JS работает быстро, а не потому, что приложение работает медленно.
* Это время, когда на странице 21 приложение, а общее время загрузки составляет 85 секунд
Вспышка
У меня нетзнать, как профилировать Flash-код.Я вижу серую полосу загрузки для некоторых SWF-файлов (некоторые из них пропускают серую полосу прокрутки).Я думаю, что профилирование это мой следующий шаг.
Загрузка
Глядя на вкладку Net в Firebug, кажется, что есть несколько вещей, которые немного замедляют загрузку.С каждым JSP связано около 8 файлов javascript.Загрузка первого всегда немного медленная (занимает около полной секунды).Я не уверен, почему это так.Мне интересно, если это потому, что не хватает соединений, поддерживаемых моим сервером Tomcat.
Другие вопросы, которые приходят на ум:
- Он запрашивает одинаковые файлы 8 js для каждого jsp, если бы файлы js можно было разместить на главной странице, чтобыони запрашиваются только один раз.
- Должен ли я увеличить число подключений к Tomcat?
- Поскольку я загружаю много приложений, я бы хотел, чтобы
app1
начал инициализировать себя после загрузки (а не ждать app2
закончить загрузку).Как узнать, когда app1
начал работать, с учетом загрузок
Обработка на стороне сервера
Я думаю, что любая обработка на стороне сервера должна отражаться временем загрузки.Например, если один из JSP занимает много времени, это будет легко увидеть, так как загрузка JSP займет много времени.
Вопрос
- Какой стандартный способ выяснить, что такое медленная часть веб-приложения?
- Какую часть проще всего ускорить?
- Я знаю, что знаю, сколько времени занимают некоторые вещи (скачать и JS), но я не знаю, как эти два связаны с каждымДругой.Когда JS начинает выполняться?Когда загрузка закончится или когда она закончится для этого файла?
- Существуют ли другие вещи, которые могут замедлить мое приложение?