2010-12-13 153 views
10

我有一个Rails 3应用程序,只是注意到当使用Chrome(在Mac)上访问应用程序时,网站上的每个页面都被请求两次。这在开发和生产(Heroku)中发生。 Firefox和Safari只发送一次请求。即使我删除操作的所有布局和内容,行为也是一样的。似乎有一个MIME类型的问题。有没有人解决了这个问题?Chrome多次发送请求

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

这是服务器日志中发展:

入门使用 “/” 在周一127.0.0.1 12月13日10时33分33秒-0800 2010

处理由PagesController#如家HTML

呈现的文本模板(0.0ms)

有限公司在2ms内完成200 OK(查看:1.3ms | ActiveRecord的:为0.8ms)


入门使用 “/” 在周一127.0.0.1 12月13日10时33分33秒-0800 2010

处理由PagesController#家为*/*

呈现的文本模板(0.0ms)

完成200 OK在3毫秒(浏览次数:1.7ms | ActiveRecord的:1.4ms之)

+0

我有一个类似的问题在XP上使用Chrome 9.0.597.98:每次我得到一个(PHP)页面,它都会在同一秒内碰到3次日志。 我试过的任何其他浏览器都能很好地运行在Linux/Windows,Opera/Windows,IE8甚至Chromium/9.0.597.94/Linux上的Firefox 3.6.13/14。 – 2011-02-25 10:36:52

回答

4

我发现了什么导致了我的问题,也许是你的问题:我使用了谷歌浏览器的扩展名为Web Server NotifierWeb Technology Notifier,它们提出了自己的请求。

取消激活后,每页只有一个请求。

+0

这似乎也是我的情况。只有我使用的扩展是ezLinkPreview。 – monocle 2011-02-25 15:04:22

4

,问题可能会涉及到这个问题:http://news.ycombinator.com/item?id=1872177

Chrome正在试图在其开发者的一些进攻战术建造(我认为这是很酷的)。他们正在做的是推测性地向服务器开放套接字,并且如果他们的第一次尝试没有足够快地得到响应,则还打开第二个套接字。很容易看到这种东西中的错误,甚至只是预期的行为,都可能触发滥用过滤器。但是,正如我所说,我认为这是值得的。如果Web更快,所有这些网络创业公司将赚更多的钱。

如果您的Rails应用程序响应速度不够快,Chrome可能会尝试以其他方式为用户获取内容;对此你可能做得不多。您的响应时间非常快,但取决于连接的起转时间,这可能是问题的一部分。

0

我在研究类似问题时发现此线程。 我有一个HTML <OBJECT>其数据正在通过调用一个PHP脚本来填充。在Chrome 27.0.1453.81中运行时,我得到两个对PHP脚本的调用(GET),但只有一个来自IE(10.0)或FF(19.0.2)。查看HTTP流量,第二个GET在第一个GET之后生成,但在第一个GET响应之前生成,所以我倾向于同意Chrome提供的建议,即当它相信第一个GET的时候,它将发送第二个GET失败了(它没有)。
我的php脚本总是需要几秒钟才能运行,我无法解决这个问题,而第二次调用会导致我一些悲伤,所以我对任何可能控制它的策略感兴趣。