Страницы загружаются дважды в Firefox?
Я думал, что ответил на этот вопрос раньше благодаря StackOverFlow, но я поспешно взял ответ, и он оказывается не реальной причиной моей проблемы.
Я проверил свой журнал доступа Apache:
Это я просматриваю свое веб-приложение в браузере Google Chrome.
127.0.0.1 - - [06/Jan/2010:22:17:35 +0000] "GET /webs/end/new.php HTTP/1.1" 200 2146
127.0.0.1 - - [06/Jan/2010:22:17:36 +0000] "GET /webs/end/settings.php HTTP/1.1" 200 4548
127.0.0.1 - - [06/Jan/2010:22:17:38 +0000] "GET /webs/end/index.php HTTP/1.1" 200 2042
Это я просматриваю свое веб-приложение на IE7.
127.0.0.1 - - [06/Jan/2010:22:21:49 +0000] "GET /webs/end/settings.php HTTP/1.1" 200 4548
127.0.0.1 - - [06/Jan/2010:22:21:50 +0000] "GET /webs/end/index.php HTTP/1.1" 200 2042
Это я просматриваю свое веб-приложение в Firefox.
127.0.0.1 - - [06/Jan/2010:22:18:08 +0000] "GET /webs/end/settings.php HTTP/1.1" 200 4548
127.0.0.1 - - [06/Jan/2010:22:18:09 +0000] "GET /webs/end/settings.php HTTP/1.1" 200 4548
127.0.0.1 - - [06/Jan/2010:22:18:10 +0000] "GET /webs/end/index.php HTTP/1.1" 200 2042
127.0.0.1 - - [06/Jan/2010:22:18:10 +0000] "GET /webs/end/index.php HTTP/1.1" 200 2042
127.0.0.1 - - [06/Jan/2010:22:18:11 +0000] "GET /webs/end/new.php HTTP/1.1" 200 2146
127.0.0.1 - - [06/Jan/2010:22:18:12 +0000] "GET /webs/end/new.php HTTP/1.1" 200 2146
Это просто я щелкаю вокруг. Но обратите внимание что для каждого запроса страницы firefox, похоже, загружает страницу дважды и ее влияние на мои PHP-скрипты, поскольку они выполняются дважды и делают две вставки в мою БД!
почему так? Я использую Firefox 3.5.6. Я предполагаю, что это проблема Firefox, а не PHP/Apache?
9 ответов
какие плагины вы установили в Firefox, они могут делать запросы молча, особенно FireBug. Попробуйте отключить firebug и посмотреть, произойдет ли это.
Как упоминалось в комментарии ниже, последняя версия FireBug не должна этого делать, поэтому, если это не так, попробуйте отключить все свои плагины (или запустить FireFox в безопасном режиме) и посмотреть, если это все еще происходит
Проверьте заголовки Accept на 2-м запросе. Это похоже на запрос изображения? Если это так, у вас может быть пустой атрибут "src" в теге "img" или пустое определение "url" в свойстве CSS, которое вызывает 2-й запрос.
подробнее здесь: http://icanhascode.com/2008/06/the-mystery-of-the-multiple-requests/
В общем, этот вопрос является болью для отслеживания.
У меня была та же проблема в другой день. Решение было поставлено
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
выше по коду. Перед ним были загружены некоторые css-коды.
Это была проблема объявления кодировки для меня тоже-возьмите ее из всех мета-тегов и объявите ее в другом месте!
как упоминал Майкл Мортон, теги IMG с отсутствующим SRC могут быть проблемой. Также могут быть пустые атрибуты HREF в тегах. Я использовал jQuery, чтобы быстро идентифицировать их:
короче говоря, запустите это в Firebug:
$('img[src=""],a[href=""]')
эта строка является некоторым Dreamweaver driven HTML и вызвала загрузку браузера дважды (с удаленным типом doc и отключенным firebug):
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
ни один из них не работал для меня. Много часов беспокойства...вот в чем была моя проблема:
у меня была HTML-ссылка с кнопкой внутри нее. Я обнаружил, что это проблема, потому что, когда я тестировал его на IE, кнопка не работала (кнопки все еще работали в Firefox).
неправильно:
<a href=''><button class='btn'>Test</button></a>
правильно:
<a class='btn' href=''>Test</a>
работает сейчас и больше не дважды нажмите.
в моем случае у меня были повторяющиеся теги:
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<!-- more code -->
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
после удаления его из моего шаблона Blogger Firefox прекратил повторную загрузку страницы.
Я использую mozilla firefox 46.0.1, и у меня такая же проблема. Но я заметил, что это произошло только тогда, когда мой PHP скрипт с ошибками предупреждение.
Настройка error_reporting(0);
в моем PHP скрипте остановлено двойное выполнение скрипта. После того, как попробовали все вышеперечисленные предложения, конечно.