我有一个Rails 3应用程序,只是注意到当使用Chrome(在Mac上)访问该应用程序时,网站上的每个页面都被请求两次。这是在开发和生产(Heroku)中发生的。 Firefox和Safari只发送一次请求。即使我删除了操作的所有布局和内容,行为也是一样的。好像有一个MIME类型问题。有人解决了这个问题吗?
class PagesController < ApplicationController
def home
render :text => 'a', :layout => false
end
这是开发中的服务器日志:
在2010年12月13日星期一10:33:33 -0800开始获取“/”for 127.0.0.1
由PagesController#home处理为 HTML
渲染文字模板(0.0ms)
2ms完成200 OK(浏览次数:1.3ms | ActiveRecord:0.8ms)
在2010年12月13日星期一10:33:33 -0800开始获取“/”for 127.0.0.1
PagesController处理#home为* / *
渲染文字模板(0.0ms)
在3ms完成200 OK(浏览次数:1.7ms | ActiveRecord:1.4ms)
答案 0 :(得分:5)
我找到了导致我的问题的原因,也许是您的问题:我使用了名为Web Server Notifier和Web Technology Notifier的Google Chrome扩展程序,这些扩展程序提出了自己的请求。
停用它们后,每页只有一个请求。
答案 1 :(得分:4)
问题可能与此问题有关:http://news.ycombinator.com/item?id=1872177
Chrome在其开发者版本中尝试了一些激进的策略(我认为这很酷)。他们正在做的是推测性地向服务器打开套接字,并且如果他们的第一次尝试没有足够快地得到响应,也打开第二个套接字。很容易看出这个东西中的错误,甚至只是预期的行为,如何触发滥用过滤器。但是,正如我所说,我认为值得做。如果网络更快,所有这些网络创业公司都会赚更多的钱。
如果您的Rails应用响应速度不够快,Chrome可能会尝试其他方式为用户提供内容;你可能没有太多可以做的事情。您的响应时间非常快,但根据连接的启动时间,这可能是问题的一部分。
答案 2 :(得分: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脚本总是需要几秒钟才能运行,我无法解决这个问题,而这第二次调用让我有些悲伤,所以我对任何可能控制它的策略感兴趣。