2010-12-13 27 views
10

Tengo una aplicación de Rails 3 y me acabo de dar cuenta de que cuando se utiliza Chrome (en Mac) para acceder a la aplicación, cada página del sitio se solicita dos veces. Esto está sucediendo en el desarrollo y la producción (Heroku). Firefox y Safari solo envían la solicitud una vez. El comportamiento es el mismo incluso cuando elimino todos los diseños y el contenido de la acción. Parece que hay un problema de tipo MIME. Alguien ha solucionado este problema?Chrome envía una solicitud varias veces

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

Este es el registro del servidor en el desarrollo:

Comienza GET "/" para 127.0.0.1 a lun 13 Dic 10:33:33 -0800 2010

Procesamiento por PagesController # caseros como HTML

plantilla texto representado (0.0ms)

Co mpleted 200 OK en 2ms (Vistas: 1.3ms | ActiveRecord: 0,8 ms)


INICIALES "/" para 127.0.0.1 en Mon 13 10:33:33 -0800 2010

Procesamiento de eventos por PagesController # casa como */*

plantilla texto representado (0.0ms)

Completado 200 OK en 3ms (Visitas: 1,7 ms | ActiveRecord: 1.4ms)

+0

Tengo un problema similar con Chrome 9.0.597.98 en XP: cada vez que aparece una página (PHP), que golpea el registro de 3 veces (en el mismo segundo). Cualquier otro navegador que probé funciona bien con esa página (Firefox 3.6.13/14 en Linux/Windows, Opera/Windows, IE8, incluso Chromium/9.0.597.94/Linux). –

Respuesta

4

Encontré lo que causó mi problema, y ​​tal vez el tuyo: utilicé las extensiones de Google Chrome llamadas Web Server Notifier y Web Technology Notifier que hicieron su propia solicitud.

Después de desactivarlos, recibí solo una solicitud por página.

+0

Este parece ser el caso para mí también. Solo la extensión que estaba usando era ezLinkPreview. – monocle

4

El problema puede estar relacionado con este tema: http://news.ycombinator.com/item?id=1872177

Chrome está tratando algunas de las tácticas agresivas en su desarrollador construye (creo que es genial). Lo que están haciendo es abrir especulativamente sockets a servidores, y también abrir un segundo socket si su primer intento no obtiene una respuesta lo suficientemente rápido. Es bastante fácil ver cómo un error en estas cosas, o incluso solo el comportamiento esperado, podría desencadenar filtros de abuso. Pero, como dije, creo que vale la pena hacerlo. Todas estas nuevas empresas web ganarán más dinero si la Web es más rápida.

Si su aplicación Rails no responde lo suficientemente rápido, es posible que Chrome intente formas alternativas de recuperar el contenido para el usuario; puede que no haya mucho que puedas hacer al respecto. Sus tiempos de respuesta son muy rápidos, pero dependiendo del tiempo de activación de la conexión, eso podría ser una parte del problema.

0

Encontré este hilo mientras investigaba un problema similar. Tengo un código HTML <OBJECT> cuyos datos se completan con una llamada a un script php. Recibo dos llamadas (GET) al script PHP cuando se ejecuta en Chrome 27.0.1453.81, pero solo una desde IE (10.0) o FF (19.0.2).Viendo el tráfico HTTP, el segundo GET se genera después del primer GET, pero antes de que el primer GET responda, por lo que estoy dispuesto a aceptar la sugerencia de que Chrome está siendo impaciente y enviar el segundo GET cuando cree que el primero ha fallado (lo cual no ha sucedido).
Mi script PHP siempre tomará un par de segundos para correr y no puedo evitar eso, y esta segunda llamada me está causando un poco de dolor, así que estoy interesado en cualquier estrategia que podría controlarlo.

Cuestiones relacionadas