我的应用基于 Rails 3.2.2.
面临一些奇怪的问题:开发/制作中的所有操作都会被调用两次。有什么建议吗?
Started GET "/faqs" for 127.0.0.1 at 2012-07-07 17:08:06 +0200
Processing by FaqsController#index as HTML
Faq Load (0.5ms) SELECT `faqs`.* FROM `faqs` WHERE `faqs`.`active` = 1 ORDER BY position asc
Rendered faqs/index.html.haml within layouts/application (3.1ms)
Rendered shared/_navigation_bar.html.haml (5.3ms)
Rendered devise/registrations/_register.html.erb (5.5ms)
Completed 200 OK in 137ms (Views: 43.3ms | ActiveRecord: 0.5ms | Solr: 0.0ms)
Started GET "/faqs" for 127.0.0.1 at 2012-07-07 17:08:06 +0200
Processing by FaqsController#index as */*
Faq Load (0.2ms) SELECT `faqs`.* FROM `faqs` WHERE `faqs`.`active` = 1 ORDER BY position asc
Rendered faqs/index.html.haml within layouts/application (0.2ms)
Rendered shared/_navigation_bar.html.haml (3.9ms)
Rendered devise/registrations/_register.html.erb (12.1ms)
Completed 200 OK in 33ms (Views: 30.2ms | ActiveRecord: 0.2ms | Solr: 0.0ms)
更新了#1
简单的控制器:
class FaqsController < ApplicationController
respond_to :html
def index
@faqs = Faq.all
respond_with(@faqs)
end
end
查看也非常简单:
%h2 Faqs
- @faqs.each_with_index do |faq, index|
.span9
%h3
= "%d." % (index + 1)
= faq.title
%p= faq.body
答案 0 :(得分:2)
这可能是由于Chrome。您可以在Safari / Firefox / IE等中进行测试
我认为它导致两次加载的原因是因为Chrome“分叉”了请求并且基本上发出了两个请求。它呈现在窗口中返回的第一个。
IIRC我多年前研究过这个问题,这是一个实现更快速渲染页面的功能。
答案 1 :(得分:0)
这个问题可能与Rails 3.2.2没有任何关系。
如果您的网页上有javascript在页面加载时发出ajax请求,则会看到这种确切的行为。我将浏览所有脚本资产,并在页面加载后查找一个旨在回调您的应用程序的资产。你可能会在那里找到罪魁祸首。