Как заставить флэш-объект загружаться с помощью swfobject так же быстро, как с помощью embed или iframe? - PullRequest
0 голосов
/ 29 января 2012

Я использую swfobject для загрузки flash-объекта на свой сайт, и он очень медленно загружается на страницах с большим количеством данных ... как будто swfobject ожидает загрузки страницы, прежде чем загружать swf.

Вот пример страницы с swfobject: http://www.tripline.net/trip?id=066434736132100383DB8A184B7D8D17

Если я заменил код swfobject с помощью iframe (с swf в качестве src) или просто использовал встраивание объекта, flash-объект загружается намного, намного быстрее ... до загрузки остальной части страницы.

Я знаю, что я могу внести в эту страницу кучу улучшений времени загрузки страницы (я тоже над этим работаю), но мне интересно, есть ли какие-то конкретные изменения, которые я мог бы внести в то, как я ' используя swfobject, чтобы получить ту же скорость загрузки, что и встраиваемый iframe или объект?

1 Ответ

3 голосов
/ 29 января 2012

Несколько вещей, чтобы попробовать:

Использование статическая публикация .

embedSWF() ждет, пока HTML DOM не будет готов, перед заменой содержимого на swf. При статической публикации браузеры, поддерживающие стандартный способ встраивания объектов без использования javascript, начнут загружать swf, как только они попадут в элемент <object>, а затем swfobject исправит все в javascript, когда DOM будет готов. Это должно дать немного более быстрое отображение вашего SWF.

Переместите еще больше javascript вниз страницы, если это возможно.

(Я редко так делаю, но), поскольку любой javascript будет блокировать синтаксический анализ DOM (в большинстве браузеров) до тех пор, пока скрипт не будет (загружен и) выполнен, это означает, что он попадет в swf позже.

Это будет иметь реальное значение только для статической публикации, поскольку динамическая публикация будет по-прежнему ждать готовности DOM. DOM ready still не будет работать до тех пор, пока все скрипты на странице не будут загружены и выполнены, что должно занять примерно одно и то же время независимо от того, где они размещены (если перемещение скриптов вниз не избавит от других проблемы с блокировкой).

Поиграйте с createSWF (не рекомендуется)

createSWF() не ждет готовности DOM. В настоящее время я мало представляю внутреннюю работу swfobject с точки зрения манипулирования DOM, но - в случае динамической публикации - это можно назвать сразу после добавления заполнителя. Заполненная часть DOM к этому времени готова (в основном) (см., Например, здесь ).

Но это все зависит от того, какие другие части страницы swfobject желает рассмотреть за кулисами в эти дни, и что это может сделать в будущих версиях. Любые манипуляции с DOM до того, как DOM готов, также могут привести к тому, что в некоторых случаях браузер будет визуализировать детали дважды, что, очевидно, не влияет на производительность. Короче говоря, не рекомендуется.

...