Chrome отправляет запрос несколько раз - PullRequest
11 голосов
/ 13 декабря 2010

У меня есть приложение Rails 3, и я только что заметил, что при использовании Chrome (на Mac) для доступа к приложению каждая страница сайта запрашивается дважды.Это происходит в разработке и производстве (Heroku).Firefox и Safari отправляют запрос только один раз.Поведение остается тем же, даже когда я удаляю все макеты и контент для действия.Кажется, что есть проблема типа MIME.Кто-нибудь исправил эту проблему?

class PagesController < ApplicationController
  def home
    render :text => 'a', :layout => false
  end

Это разработка журнала сервера:

Запущен GET "/" для 127.0.0.1 в понедельник, 13 декабря 10:33:33-0800 2010

Обработка PagesController # home как HTML

Визуализированный текстовый шаблон (0,0 мс)

Выполнено 200 ОК за 2 мс (просмотров: 1,3мс | ActiveRecord: 0,8 мс)


Запуск GET "/" для 127.0.0.1 в понедельник, 13 декабря 10:33:33 -0800 2010

Обработкаby PagesController # home as * / *

Визуализированный текстовый шаблон (0,0 мс)

Выполнено 200 ОК за 3 мс (Просмотры: 1,7 мс | ActiveRecord: 1,4 мс)

Ответы [ 3 ]

5 голосов
/ 25 февраля 2011

Я обнаружил, что вызвало мою проблему, и, возможно, вашу: я использовал расширения Google Chrome с именами Уведомление веб-сервера и Уведомление веб-технологии , которые сделали свой собственный запрос.

После их отключения я получил только один запрос на страницу.

4 голосов
/ 14 декабря 2010

Проблема может быть связана с этой проблемой: http://news.ycombinator.com/item?id=1872177

В своих сборках для разработчиков Chrome применяет агрессивную тактику (я думаю, это круто). Они спекулятивно открывают сокеты для серверов, а также открывают второй сокет, если их первая попытка не дает ответа достаточно быстро. Довольно легко увидеть, как ошибка в этом материале или даже просто ожидаемое поведение могут вызывать фильтры злоупотреблений. Но, как я уже сказал, я думаю, что это стоит делать. Все эти веб-стартапы принесут больше денег, если Интернет будет быстрее.

Если ваше Rails-приложение не отвечает достаточно быстро, возможно, Chrome пытается использовать альтернативные способы возврата контента для пользователя; там не так много, что вы можете с этим поделать. Время отклика очень быстрое, но в зависимости от времени ускорения соединения это может быть частью проблемы.

0 голосов
/ 17 мая 2013

Я нашел эту тему во время исследования аналогичной проблемы. У меня есть HTML <OBJECT>, данные которого заполняются вызовом php-скрипта. Я получаю два вызова (GET) к сценарию PHP при запуске в Chrome 27.0.1453.81, но только один из IE (10.0) или FF (19.0.2). Глядя на HTTP-трафик, второй GET генерируется после первого GET, но до того, как первый GET ответил, поэтому я склонен согласиться с предположением о том, что Chrome нетерпелив и отправляет второй GET, когда считает, что первый не удалось (чего не произошло).
Мой php-скрипт всегда будет запускаться несколько секунд, и я не могу обойти это, и этот второй вызов вызывает у меня некоторое горе, поэтому я заинтересован в любой стратегии, которая могла бы его контролировать.

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