Что может вызвать двойной запрос страницы? - PullRequest
3 голосов
/ 07 мая 2010

Я сейчас занимаюсь проблемой двойного запроса на моем сайте. Не всегда, но иногда запрашиваемая страница фактически загружается дважды ... что на самом деле не является проблемой, пока она не будет на странице с PHP, которая вставляет материал в мою базу данных по запросу (мой скрипт отслеживания).

Я прочитал, что пустой src в теге изображения и пустой url () на фоне css потенциально могут вызвать запрос страницы дважды.

Однако я не могу найти никаких проблем с ними.

Есть ли что-нибудь еще, что может вызывать что-то подобное?

ОТВЕТ НА МОЮ СИТУАЦИЮ

После некоторых обширных исследований выясняется, что именно в моем случае второй запрос поступил от агента пользователя "Mediapartner-Google". Я начал замечать, что на страницах, где размещается реклама Adsense, я мог ожидать повторного посещения этого сканера в течение нескольких секунд после того, как сам зашел на страницу.

Похоже, этого не происходит на страницах без рекламы Adsense.

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

Ответы [ 5 ]

4 голосов
/ 07 мая 2010

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

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

Подобные вещи, безусловно, имеют тенденцию давать одну паузу при реализации страниц, которые изменяют состояние бэкэнда. Многие люди помещают порядковые номера в скрытые элементы формы, чтобы бэкэнд мог обнаружить двойную отправку.

3 голосов
/ 13 января 2011

src="" в некоторых элементах определенных браузеров (например, <img src="" />) может запросить текущую страницу еще раз.

3 голосов
/ 07 мая 2010

Причины, которые я видел раньше:

  • Отсутствует таблица стилей или изображение

  • Аддон веб-разработчика для Chrome / Firefox иногда запрашивает что-то дважды, если вы проверяете HTML и т. Д.

  • Несоответствие браузера

Иногда слишком сложно отследить основную причину двойного запроса.

В любом случае, вы должны НЕ изменять состояние базы данных (или состояние сеанса) посредством запроса GET. Единственный запрос SQL, который вы должны выполнять без постданных, это SELECT. Все обновления и вставки должны выполняться с использованием форм, даже если форма состоит только из кнопки отправки.

2 голосов
/ 07 мая 2010

404 - основной источник запроса, который, по-видимому, запрашивается дважды. Проверьте правильность всех ваших CSS, JS и изображений.

1 голос
/ 08 мая 2010

У нас было очень странное поведение в нашей CMS, когда iframe в лайтбоксе диалога jQuery выполнял двойную вставку в базу данных.После долгих часов отладки и громких WTF мы прибили его.метод закрытия диалога устанавливал фокус на iframe диалога перед его уничтожением и вызывал перезагрузку URL iframe!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...