Оптимизация моего веб-приложения с использованием Flash, Javascript и JSP

У меня есть веб-приложение, которое я пытаюсь ускорить. Это выглядит следующим образом:

+------+
|      |
|      |
+------+

+------+
|      |
|      |
+------+

+------+
|      |
|      |
+------+

Каждый блок представляет собой iFrame, содержащий Flash SWF и некоторый JavaScript. SWF загружает сторонний SWF, который используется для отображения информации. Я обнаружил, что время загрузки веб-приложения составляет:

LoadTime = (4 seconds) * numberOfBoxes + (3 seconds) 

Когда я просто вставил сторонний swf напрямую (без нашего swf или javascript), время загрузки составляет:

LoadTime = (1 second) * numberOfBoxes + (2.5 seconds)

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

  • Серверная обработка (jsp)
  • Загрузить
  • Javascript
  • Flash
  • Другое?

Загрузить

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

Однако одна достопримечательность отмечена красным. Красная область - это 3-секундный промежуток между загрузкой My SWF и загрузкой двух файлов gif, за которыми следует сторонний SWF . Я думаю, что эта пауза вызвана обработкой на клиенте (это правда?).

enter image description here

Примечание. Красные полосы на графике не являются частью схемы. Я добавил их, чтобы выделить пробел, в котором ничего не происходит на панели .net .

Я думаю, что могу сделать вывод из этого, что у меня проблема с обработкой на стороне клиента, которая подразумевает либо Flash, либо Javascript. Вопрос 1. Правильно ли это?

Редактировать: Я суммировал общее время одновременной загрузки:

  • Когда есть 1 iframe , время загрузки составляет 1,87 секунды
  • Когда есть 2 iframe , время загрузки составляет 2. 29 секунд
  • При наличии 5 окон iframe время загрузки составляет 8,57 секунды
  • При наличии 10 окон iframe время загрузки составляет 10,62 секунды
  • Когда есть 21 iframe , время загрузки составляет 17,20 секунды

Javascript

Я использовал профилировщик в firebug для профилирования javascript. Вот результаты, когда на странице есть четыре компонента:

enter image description here

Это означает, что javascript работает около 0,25 секунды на диаграмму. Мне это кажется разумным.

Вопрос 2: Правильно ли я читаю эти результаты?

Остается около 3,5 секунд на график обработки для чего-то еще.

Flash

Я вставил несколько операторов трассировки в код AS3. Мы слушаем событие, которое называется «завершена загрузка». Я поместил трассировку в первый метод инициализации и в метод "завершенной загрузки". Вспышка занимает всего 0,2 секунды на диаграмму между этими двумя операторами трассировки.

Вопрос 3: Есть ли лучший способ профилировать вспышку? Может быть, загрузка флеш-памяти или что-то в этом роде отнимает дополнительное время?

Другое

Я не уверен, есть ли другие вещи, кроме:

  • Серверная обработка (jsp)
  • Загрузить
  • Javascript
  • Flash

Вопрос 4: Есть ли что-то, чего мне не хватает, что может отнимать время?

Следующие шаги

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

Вопрос 5: Как мне найти это недостающее время?

Обновление : Сводка времени

Я составил график всех времен для каждой вещи, на которую могло уйти время.

  • По оси X отложено количество используемых диаграмм.
  • По оси Y показано время, необходимое для загрузки всех диаграмм.

Последний график, возможно, самый важный. Синие точки - это общее время загрузки (измеренное с помощью секундомера). Красные точки - это количество времени, которое я учел (Javascript, время загрузки и время прошивки).

enter image description here

Обновление : Browser Wars

Я нацелен на IE и Firefox (хотя это хороший бонус, если работают другие браузеры). Все результаты, представленные на данный момент, относятся к Firefox с запущенным firebug. Ради интереса я подумал, что попробую в других браузерах. Я не думаю, что это приближает меня к решению, но интересно посмотреть, насколько IE отстой.

enter image description here

Примечание: Перед запуском тестов для Firefox я очистил файлы cookie и кеш. Я не делал этого для IE или Chrome

Обновление : Загрузка Flash

Я разбрызгивал операторы console.log , хотя мой код пытался вставить медленный код. (Результаты выводятся в консоль Firebug).

Одна вещь, которую я заметил, кажется мне подозрительной, - это то, что между моментом печати моего последнего журнала javascript и моментом печати моего первого журнала флэш-памяти существует 2,5-секундный промежуток.

17:08:29.973 - Javascript code
Time difference: 2510 ms
17:08:32.483 - Flash- myComponent.init()

Нужно ли во флэш-памяти настраивать виртуальную машину для каждого swf-файла? Компилирует ли сценарий действий на клиенте?

Что происходит между тем, когда я мой swf и когда событие creationComplete в моем основном файле . mxml ?

24
задан sixtyfootersdude 7 June 2011 в 14:31
поделиться