2010-12-13 14 views
10

Ho un'app Rails 3 e ho appena notato che quando si utilizza Chrome (su Mac) per accedere all'app, ogni pagina del sito viene richiesta due volte. Questo sta accadendo nello sviluppo e nella produzione (Heroku). Firefox e Safari inviano la richiesta solo una volta. Il comportamento è lo stesso anche quando rimuovo tutti i layout e i contenuti per l'azione. Sembra che ci sia un problema di tipo MIME. Qualcuno ha risolto questo problema?Chrome invia una richiesta più volte

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

Questo è il log del server in fase di sviluppo:

introduttiva GET "/" per 127.0.0.1 da Mon 13 dicembre 10:33:33 -0800 2010

lavorazione da PagesController # casa come HTML

template testo Resi (0,0 ms)

Co mpleted 200 OK in 2ms (Visualizzazioni: 1,3 ms | ActiveRecord: 0.8ms)


iniziate GET "/" per 127.0.0.1 da Mon 13 10:33:33 -0800 2010

lavorazione dicembre da PagesController # casa come */*

template testo Resi (0,0 ms)

Completed 200 OK nella 3ms (Viste: 1.7ms | ActiveRecord: 1.4ms)

+0

Ho un problema simile Con Chrome 9.0.597.98 su XP: ogni volta che ottengo una pagina (PHP), tocca il registro 3 volte (sullo stesso secondo). Qualsiasi altro browser che ho provato funziona bene con quella pagina (Firefox 3.6.13/14 su Linux/Windows, Opera/Windows, IE8, anche Chromium/9.0.597.94/Linux). –

risposta

4

Ho trovato che cosa ha causato il mio problema, e forse il tuo: ho usato le estensioni di Google Chrome denominate Web Server Notifier e Web Technology Notifier che hanno fatto la loro richiesta.

Dopo averli disattivati, ho ricevuto una sola richiesta per pagina.

+0

Questo sembra essere il caso anche per me. Solo l'estensione che stavo usando era ezLinkPreview. – monocle

4

Il problema potrebbe essere legato a questo problema: http://news.ycombinator.com/item?id=1872177

Chrome sta cercando alcune tattiche aggressive nel suo sviluppatore costruisce (penso che è cool). Quello che stanno facendo è speculativamente aprire socket ai server e aprire anche un secondo socket se il loro primo tentativo non ottiene una risposta abbastanza velocemente. È abbastanza facile vedere come un bug in questa roba, o anche solo il comportamento atteso, possa innescare filtri di abuso. Ma, come ho detto, penso che valga la pena farlo. Tutte queste startup Web faranno più soldi se il Web è più veloce.

Se la tua app Rails non risponde abbastanza velocemente, è possibile che Chrome stia tentando metodi alternativi di recupero dei contenuti per l'utente; potrebbe non esserci molto che puoi fare al riguardo. I tempi di risposta sono molto rapidi, ma a seconda del tempo di avvio della connessione, potrebbe essere una parte del problema.

0

Ho trovato questo thread durante la ricerca di un problema simile. Ho un codice HTML <OBJECT> i cui dati vengono popolati da una chiamata a uno script php. Ricevo due chiamate (GET) allo script PHP quando si esegue in Chrome 27.0.1453.81, ma solo una da IE (10.0) o FF (19.0.2).Guardando il traffico HTTP, il secondo GET viene generato dopo il primo GET, ma prima che il primo GET rispondesse, quindi sono propenso a concordare con il suggerimento che Chrome sia impaziente e invii il secondo GET quando crede che il primo sia ha fallito (cosa che non ha).
Il mio script php impiegherà sempre un paio di secondi per essere eseguito e non posso aggirarlo, e questa seconda chiamata mi sta causando un po 'di dolore, quindi sono interessato a qualsiasi strategia che possa controllarlo.

Problemi correlati