Почему Firefox запускает два запроса для встроенных SWF-файлов? - PullRequest
4 голосов
/ 10 июля 2009

Когда SWF-файл встроен в страницу и не локально кэшируется в браузере, браузер запускает два запроса на SWF-файл. Вот простой пример .

Первый запрос возвращает ожидаемое 200 OK, а второй запрос вызывает 304 Not Modified после завершения первого запроса, указывая, что файл теперь кэшируется локально.

Почему этот 2 nd запрос сработал и как я могу предотвратить его?

Ответы [ 3 ]

2 голосов
/ 10 июля 2009

Думаю, я понял это. Я более внимательно читаю отчеты об ошибках в Firefox, и, похоже, это связано с установленным AdBlock Plus. Сначала я проверил, что ошибка по-прежнему возникает на вашей обновленной странице, и воспроизвел ее во второй раз. Затем я отключил AdBlock Plus и попробовал тот же тест. Двойной запрос больше не происходил. Поэтому, если у вас установлено это расширение или, возможно, аналогичное расширение, это может быть причиной.

Это - это отчет об ошибке, связанной с двойным созданием плагина, а this - это сообщение об ошибке, вызванное тем, что AdBlock Plus вызывает его.

1 голос
/ 17 июля 2009

Я полагаю, что это также может быть вызвано запуском Firebug - попробуйте проверить запросы браузера с помощью LiveHTTPHeaders (или другого приложения для сниффинга http, такого как Charles), пока Firebug отключен.

1 голос
/ 10 июля 2009

Я только что убедился, что это происходит и со мной.

Сначала я подумал, что это связано с ошибкой в ​​Firefox. См. FAQ № 16 на этой странице . Однако ошибки, на которые они ссылаются, исправлены.

Итак, я посмотрел некоторые из моих собственных веб-сайтов, которые встраивают SWF-файлы с использованием SWFObject 2.2. Двойного GET не произошло. Я думаю, что разница в том, что в моем коде я вызываю swfobject.embedSWF на <head> страницы вместо тела. Поместить скрипт в голову - это то, что рекомендует документация SWFObject 2.2 (это немного отличается от старых версий SWFObject).

Итак, вот что я бы попробовал на твоем месте:

  1. Удалите google.load ("swfobject", "2.2") и напрямую включите скрипт SWFObject.
  2. Переместите ваш код swfobject.embedSWF в начало вашей страницы.
...