Почему Firefox запускает два запроса для встроенных swfs-файлов?
Вопрос
Когда swf-файл встроен в страницу и является не кэшированные локально в браузере, браузер запускает два запроса к swf-файлу. Вот простой пример.
Первый запрос возвращает ожидаемое 200 OK
, и второй запрос запускает 304 Not Modified
после завершения первого запроса, указывающего, что файл теперь кэшируется локально.
Почему это 2найти запрос отклонен, и как я могу это предотвратить?
Решение
Я полагаю, что это также может быть вызвано запуском Firebug - попробуйте проверить запросы вашего браузера с помощью LiveHTTPHeaders (или какого-либо другого приложения для прослушивания http, такого как Charles), пока у вас отключен Firebug.
Другие советы
Я думаю, что я понял это.Я более внимательно прочитал отчеты об ошибках в Firefox, и, похоже, это вызвано AdBlock Plus, который я установил.Во-первых, я убедился, что ошибка все еще возникает на вашей обновленной странице, и воспроизвел ее во второй раз.Затем я отключил AdBlock Plus и попробовал тот же тест.Двойной запрос больше не выполнялся.Так что, если у вас установлено это расширение или, возможно, аналогичное расширение, это может быть причиной.
Это является ли сообщение об ошибке о двойном создании экземпляра плагина, и это является сообщением об ошибке из-за того, что AdBlock Plus вызывает это.
Я только что убедился, что это происходит и со мной.
Сначала я подумал, что это из-за ошибки в Firefox.Смотрите часто задаваемый вопрос № 16 на эта страница.Однако ошибки, на которые они ссылаются, похоже, исправлены.
Итак, затем я просмотрел некоторые из моих собственных веб-сайтов, которые встраивают SWFS-файлы с использованием SWFObject 2.2.Двойное получение не произошло.Я думаю, разница в том, что в моем коде я вызываю swfobject.embedSWF в <head>
страницы вместо основного текста.Размещение скрипта в head - это то, что рекомендует документация SWFObject 2.2 (это небольшое отклонение от старых версий SWFObject).
Итак, вот что я бы попробовал на твоем месте:
- Удалите google.load("swfobject", "2.2") и включите скрипт SWFObject напрямую.
- Переместите свой swfobject.embedSWF-код в начало вашей страницы.