Chrome会多次发送请求

时间:2010-12-13 18:50:03

标签: ruby-on-rails google-chrome

我有一个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)

3 个答案:

答案 0 :(得分:5)

我找到了导致我的问题的原因,也许是您的问题:我使用了名为Web Server NotifierWeb 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脚本总是需要几秒钟才能运行,我无法解决这个问题,而这第二次调用让我有些悲伤,所以我对任何可能控制它的策略感兴趣。