Запретить JWPlayer загружать JWPLAYER.SWF несколько раз для нескольких экземпляров

#swfobject #jwplayer

#swfobject #jwplayer

Вопрос:

Я использую JW Embeddder вместе с JWPlayer для встраивания 3 видеороликов на страницу. (Я почти уверен, что ситуация была бы такой же, если бы для встраивания использовался SWFObject.

К моему ужасу (!) При просмотре в Fiddler я увидел 3 загрузки (HTTP Status 200), для jwplayer.swf которых требуется 200 КБ.

Очевидно, что происходит то, что javascript для встраиваемого модуля просто выдает код для создания экземпляра flash-объекта, а затем браузер инициирует 3 запроса для файла размером 100 кб jwplayer.swf .

Недостаточно умно ждать, пока jwplayer.swf загрузится, а затем использовать его для двух других игроков.

Как я могу убедиться, что jwplayer.swf загружен только один раз.

Ответ №1:

Браузеру решать, как обращаться с несколькими запросами для одних и тех же объектов. Большинство браузеров сохраняют ресурсы в кэше и либо пропускают последующие запросы и выполняют их непосредственно из кэша, либо отправляют запрос другого типа, который проверяет, изменилось ли содержимое на сервере.

В любом случае, у самого проигрывателя нет возможности контролировать это поведение. Тем не менее….

Если у вас не работает HTML5, вы можете попробовать создать манифест кэша для swf.

Этот скрипт выглядит многообещающе: http://blog.sebastian-martens.de/2010/05/preload-assets-with-javascript-load-complete-callback-for-single-assets-include-swfflash/ Вы можете предварительно загрузить первый проигрыватель, а затем два следующих в качестве обратного вызова после загрузки (см. Комментарий 9).