代码之家  ›  专栏  ›  技术社区  ›  sambecker

每个请求多次调用Rails操作

  •  0
  • sambecker  · 技术社区  · 7 年前

    我有一个控制器动作,每个浏览器请求调用三次。有什么想法吗? config/routes.rb application_controller.rb

    代码如下,

    config/routes.rb
    
    Rails.application.routes.draw do
        root 'tiles#index'
    

    +

    controllers/tiles_controller.rb
    
    class TilesController < ApplicationController
    def index
      puts "this line prints three times in the console per request"
    end
    

    +

    tiles/index.html.erb
    <% if notice %>
      <p id="notice"><%= notice %></p>
    <% end %>
    
    <div id="tiles">
      <%= render "tile", tile: { type: "sam", id: "0" } %>
      <%= render "tile", tile: { type: "inputs", id: "1" } %>
      <%= render collection: @tiles, partial: "tile" %>
      <%= render "tile", tile: { type: "social", id: "1000" } %>
    </div>
    

    这是控制台日志:

    log/development.log
    Started GET "/" for 127.0.0.1 at 2017-08-31 16:56:28 -0400
    Processing by TilesController#index as HTML
    Started GET "/" for 127.0.0.1 at 2017-08-31 16:56:28 -0400
    Processing by TilesController#index as HTML
      [1m[36mProject Load (0.5ms)[0m  [1m[34mSELECT  "projects".* FROM "projects" ORDER BY "projects"."launch_date" ASC LIMIT $1[0m  [["LIMIT", 10]]
      [1m[36mProject Load (9.1ms)[0m  [1m[34mSELECT  "projects".* FROM "projects" ORDER BY "projects"."launch_date" ASC LIMIT $1[0m  [["LIMIT", 10]]
      Rendering tiles/index.html.erb within layouts/application
      Rendered tiles/_tile_sam.html.erb (0.3ms)
      Rendered tiles/_tile.html.erb (8.0ms)
      Rendering tiles/index.html.erb within layouts/application
      Rendered tiles/_tile_sam.html.erb (0.0ms)
      Rendered tiles/_tile.html.erb (0.9ms)
      Rendered tiles/_tile_instagram.html.erb (12.6ms)  
      ...
      Rendered tiles/_tile_twitter.html.erb (0.5ms)
      Rendered collection of tiles/_tile.html.erb [48 times] (125.9ms)
      Rendered tiles/_tile_project.html.erb (0.1ms)
      Rendered tiles/_tile_social.html.erb (0.6ms)
      Rendered tiles/_tile.html.erb (2.7ms)
      Rendered tiles/index.html.erb within layouts/application (166.1ms)
      Rendered tiles/_tile_twitter.html.erb (0.6ms)
      ...
      Rendered collection of tiles/_tile.html.erb [48 times] (158.5ms)
      Rendered tiles/_tile_social.html.erb (0.1ms)
      Rendered tiles/_tile.html.erb (1.0ms)
      Rendered tiles/index.html.erb within layouts/application (165.3ms)
    Completed 200 OK in 1310ms (Views: 217.1ms | ActiveRecord: 9.1ms)
    
    
    Completed 200 OK in 1325ms (Views: 204.5ms | ActiveRecord: 0.5ms)
    

    帮助

    1 回复  |  直到 7 年前
        1
  •  3
  •   sambecker    7 年前

    真 的

    通过逐行删除与此操作/视图相关的代码,最终解决了这个问题。基本上,我产生了一些 img 标记为空 src 领域。显然,这会导致许多现代浏览器多次加载网站,可能是为了寻找丢失的图像,或者假设根URL就是图像本身?

    https://forums.asp.net/t/1804472.aspx?Bizzare+safari+thing+two+page+loads+for+each+page+

    page loads twice in Google chrome