2009-02-01 2 views
7

При исследовании проблемы с загрузкой моего сайта медленно, я столкнулся с проблемой, когда я заметил (через firebug), что мой flash-файл загружается дважды.Вспышка загружается дважды обходным путем?

После небольшого расследования я отследил его до firefox bug в сочетании с использованием SWFObject 2.0.

Теперь, я заметил на резьбе, что кто-то упомянул, что вы можете обойти эту проблему путем:

FYI, если вы разработчик веб-страница, то простое решение, чтобы получить вашу страницу работы с FF3 является для задержки доступа к любым плагинам, пока ваша страница не будет полностью загружена. Легкий способ сделать это - запланировать код сценария плагина для запуска после всех ожидающих событий браузера с использованием window.setTimeout с тайм-аутом из нуля.

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

Знаете ли вы, как сделать эту работу и как будет выглядеть код? Любая помощь будет очень оценена!

ответ

3
<script> 
    function loadswf() 
    { 
    swfobject.registerObject("myobj", "9.0.0"); 
    } 
    function init() 
    { 
    window.setTimeout("loadswf()", 0); 
    } 
</script> 
<body onload="init()"> 

<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" width="778" height="198" id="myobj"> 
    <param name="movie" value="style.swf"> 
    <param NAME=FlashVars VALUE="url={{stylelist}}"> 
     <!--[if !IE]>--> 
     <object type="application/x-shockwave-flash" data="style.swf" width="778" height="198"> 
    <param name="flashvars" value="url={{stylelist}}"> 
    <!--<![endif]--> 

    <a href="http://www.adobe.com/go/getflashplayer"> 
    <img src="http://www.adobe.com/images/shared/download_buttons/get_flash_player.gif" alt="Get Adobe Flash player" /> 
        </a> 
    <!--[if !IE]>--> 
    </object> 
    <!--<![endif]--> 
</object>    
+0

Ну, это другое поведение, но это загружает вспышку, а затем полностью исчезает, и я остаюсь с белым экраном на странице моего браузера ... – GeoffreyF67

+0

Думаю, мы можем делать две разные вещи. который включает в себя код выше.Я не уверен, какой код вы используете точно - возможно, вы могли бы включить полный код? Я изменил свой рабочий код, чтобы он соответствовал идее setTimeout. Также это может быть swfobject 1. –

1

Убедитесь, что вы настраиваете заголовки Cache и Expires в ответе. У меня была аналогичная проблема с pdf-тегом в теге объекта, дважды вызывающим сервер. Установка заголовка Expires на 5 секунд после того, как текущее время предотвратило второй вызов. HTH

+0

it не исправил проблему для меня –

0

Это также может быть вызвано неправильной настройкой CDN s, где они могут не отправлять полный контент или метать 206 или другую ошибку HTTP.

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