Diagnose der Ursache für das Rendern langsamer Ansichten

79

Ich bin nicht sicher, wann dies gestartet wurde, aber in meiner App passiert etwas Ungewöhnliches (lokal auf einem Entwicklungscomputer ausgeführt). Plötzlich sehe ich Nachrichten wie:

Started GET "/" for 127.0.0.1 at 2013-03-10 12:10:24 +1300
Processing by PagesController#home as HTML
  Rendered pages/home.html.erb within layouts/application (2.4ms)
Completed 200 OK in 3242ms (Views: 3241.4ms | ActiveRecord: 0.0ms)

Wie Sie sehen können, 3 Sekunden, um die Homepage zu laden (eine relativ einfache Seite) ... Wir sprechen nicht von einem harten Seiten-Reload. Klicken Sie einfach erneut auf den Link "Home" von einer anderen Seite.

Ich bin mir nicht sicher, wo ich hier anfangen soll, aber das ist meine application.rb:

#config/boot.rb is loaded
require File.expand_path('../boot', __FILE__)

require 'rails/all'

if defined?(Bundler)
  Bundler.require(*Rails.groups(:assets => %w(development test)))
end

module Goodsounds
  class Application < Rails::Application
    config.encoding = "utf-8"
    config.filter_parameters += [:password]
    config.assets.initialize_on_precompile = false
    config.assets.enabled = true
    config.action_controller.assets_dir = "#{File.dirname(File.dirname(__FILE__))}/public"
    config.assets.version = '1.0'
    config.autoload_paths += Dir["#{Rails.root}/lib/modules"]
    config.assets.paths += Dir["#{Rails.root}/app/assets/fonts/*"]
    config.assets.precompile += %w( .svg .eot .woff .ttf ) 
  end
end

... und dev.rb:

Goodsounds::Application.configure do
  # Settings specified here will take precedence over those in config/application.rb
    Paperclip.options[:command_path] = "/usr/bin/"

    config.action_mailer.default_url_options = { :host => 'localhost:3000' }

  config.action_mailer.raise_delivery_errors = true

  # set delivery method to :smtp, :sendmail or :test
  config.action_mailer.delivery_method = :smtp

  # these options are only needed if you choose smtp delivery

  config.action_mailer.smtp_settings = { :address => "localhost", :port => 1025 }

  # In the development environment your application's code is reloaded on
  # every request. This slows down response time but is perfect for development
  # since you don't have to restart the web server when you make code changes.
  config.cache_classes = false

  # Log error messages when you accidentally call methods on nil.
  config.whiny_nils = true

  # Show full error reports and disable caching
  config.consider_all_requests_local       = true
  config.action_controller.perform_caching = false

  # Print deprecation notices to the Rails logger
  config.active_support.deprecation = :log

  # Only use best-standards-support built into browsers
  config.action_dispatch.best_standards_support = :builtin

  # Raise exception on mass assignment protection for Active Record models
  config.active_re
cord.mass_assignment_sanitizer = :strict

  # Log the query plan for queries taking more than this (works
  # with SQLite, MySQL, and PostgreSQL)
  config.active_record.auto_explain_threshold_in_seconds = 0.5

  # Do not compress assets
  config.assets.compress = false

  # Expands the lines which load the assets
  config.assets.debug = true
end

BEARBEITEN:

OK, hier ist was ich auf einem neuen Relikt sehe. Hilft mir aber nicht wirklich. Irgendwelche Gedanken?

Geben Sie hier die Bildbeschreibung ein

Geben Sie hier die Bildbeschreibung ein

Oh und was ich aus der Chrome-Timeline gelernt habe:

Send Request - Details
Duration    0 (at 655ms)
Resource    localhost
Request Method  GET

Receive Response - Details
Duration    0.043ms (at 4.17s)
Resource    localhost
Status Code 200
MIME Type   text/html

Receive Data - Details
Duration    176.329ms (at 4.17s)
Self Time   7.037ms
CPU Time    176.329ms
Aggregated Time 061.194ms114.664ms0.471ms0
Resource    localhost
Encoded Data Length 303 Bytes
Used Heap Size  29.1MB (+5.7MB)

Finish Loading - Details
Duration    0 (at 4.35s)
Resource    localhost

Übrigens habe ich das Juwel quiet_assets deaktiviert, um zu sehen, was ich im Terminal entdecken konnte .. wieder .. nicht hilfreich:

Started GET "/" for 127.0.0.1 at 2013-03-10 21:46:40 +1300
Processing by PagesController#home as HTML
  Rendered pages/home.html.erb within layouts/application (43.4ms)
Completed 200 OK in 3501ms (Views: 3480.9ms | ActiveRecord: 19.4ms)


Started GET "/assets/dataTables/jquery.dataTables.bootstrap.css?body=1" for 127.0.0.1 at 2013-03-10 21:46:44 +1300
Served asset /dataTables/jquery.dataTables.bootstrap.css - 304 Not Modified (11ms)


Started GET "/assets/chosen.css?body=1" for 127.0.0.1 at 2013-03-10 21:46:44 +1300
Served asset /chosen.css - 304 Not Modified (5ms)


Started GET "/assets/select2.css?body=1" for 127.0.0.1 at 2013-03-10 21:46:44 +1300
Served asset /select2.css - 304 Not Modified (4ms)


Started GET "/assets/autocomplete.css?body=1" for 127.0.0.1 at 2013-03-10 21:46:44 +1300
Served asset /autocomplete.css - 304 Not Modified (1ms)


Started GET "/assets/branches.css?body=1" for 127.0.0.1 at 2013-03-10 21:46:44 +1300
Served asset /branches.css - 304 Not Modified (2ms)


Started GET "/assets/bubbles.css?body=1" for 127.0.0.1 at 2013-03-10 21:46:44 +1300
Served asset /bubbles.css - 304 Not Modified (1ms)


Started GET "/assets/business_show.css?body=1" for 127.0.0.1 at 2013-03-10 21:46:44 +1300
Served asset /business_show.css - 304 Not Modified (1ms)


Started GET "/assets/chunkyfive_font.css?body=1" for 127.0.0.1 at 2013-03-10 21:46:44 +1300
Served asset /chunkyfive_font.css - 304 Not Modified (1ms)


Started GET "/assets/consumer_show.css?body=1" for 127.0.0.1 at 2013-03-10 21:46:44 +1300
Served asset /consumer_show.css - 304 Not Modified (2ms)


Started GET "/assets/datatable_styling.css?body=1" for 127.0.0.1 at 2013-03-10 21:46:44 +1300
Served asset /datatable_styling.css - 304 Not Modified (1ms)


Started GET "/assets/datepicker.css?body=1" for 127.0.0.1 at 2013-03-10 21:46:44 +1300
Served asset /datepicker.css - 304 Not Modified (2ms)


Started GET "/assets/devise_links.css?body=1" for 127.0.0.1 at 2013-03-10 21:46:44 +1300
Served asset /devise_links.css - 304 Not Modified (1ms)


Started GET "/assets/dispenser_show.css?body=1" for 127.0.0.1 at 2013-03-10 21:46:44 +1300
Served asset /dispenser_show.css - 304 Not Modified (1ms)


Started GET "/assets/fonts.css?body=1" for 127.0.0.1 at 2013-03-10 21:46:44 +1300
Served asset /fonts.css - 304 Not Modified (1ms)


Started GET "/assets/forms.css?body=1" for 127.0.0.1 at 2013-03-10 21:46:44 +1300
Served asset /forms.css - 304 Not Modified (2ms)


Started GET "/assets/gmaps4rails.css?body=1" for 127.0.0.1 at 2013-03-10 21:46:44 +1300
Served asset /gmaps4rails.css - 304 Not Modified (1ms)


Started GET "/assets/jquery-ui-1.10.0.custom.css?body=1" for 127.0.0.1 at 2013-03-10 21:46:44 +1300
Served asset /jquery-ui-1.10.0.custom.css - 304 Not Modified (2ms)


Started GET "/assets/jumbotrons.css?body=1" for 127.0.0.1 at 2013-03-10 21:46:44 +1300
Served asset /jumbotrons.css - 304 Not Modified (1ms)


Started GET "/assets/layout.css?body=1" for 127.0.0.1 at 2013-03-10 21:46:44 +1300
Served asset /layout.css - 304 Not Modified (1ms)


Started GET "/assets/open_sans.css?body=1" for 127.0.0.1 at 2013-03-10 21:46:44 +1300
Served asset /open_sans.css - 304 Not Modified (2ms)


Started GET "/assets/popover.css?body=1" for 127.0.0.1 at 2013-03-10 21:46:44 +1300
Served asset /popover.css - 304 Not Modified (1ms)


Started GET "/assets/reviews.css?body=1" for 127.0.0.1 at 2013-03-10 21:46:44 +1300
Served asset /reviews.css - 304 Not Modified (1ms)


Started GET "/assets/spinner.css?body=1" for 127.0.0.1 at 2013-03-10 21:46:44 +1300
Served asset /spinner.css - 304 Not Modified (2ms)


Started GET "/assets/style_show.css?body=1" for 127.0.0.1 at 2013-03-10 21:46:44 +1300
Served asset /style_show.css - 304 Not Modified (2ms)


Started GET "/assets/style_show_reviews.css?body=1" for 127.0.0.1 at 2013-03-10 21:46:44 +1300
Served asset /style_show_reviews.css - 304 Not Modified (2ms)


Started GET "/assets/jquery.js?body=1" for 127.0.0.1 at 2013-03-10 21:46:44 +1300
Served asset /jquery.js - 304 Not Modified (3ms)


Started GET "/assets/jquery_ujs.js?body=1" for 127.0.0.1 at 2013-03-10 21:46:44 +1300
Served asset /jquery_ujs.js - 304 Not Modified (3ms)


Started GET "/assets/ui.custom.min.js?body=1" for 127.0.0.1 at 2013-03-10 21:46:44 +1300
Served asset /ui.custom.min.js - 304 Not Modified (1ms)


Started GET "/assets/bootstrap-transition.js?body=1" for 127.0.0.1 at 2013-03-10 21:46:44 +1300
Served asset /bootstrap-transition.js - 304 Not Modified (5ms)


Started GET "/assets/bootstrap-affix.js?body=1" for 127.0.0.1 at 2013-03-10 21:46:44 +1300
Served asset /bootstrap-affix.js - 304 Not Modified (3ms)


Started GET "/assets/bootstrap-alert.js?body=1" for 127.0.0.1 at 2013-03-10 21:46:44 +1300
Served asset /bootstrap-alert.js - 304 Not Modified (4ms)


Started GET "/assets/bootstrap-button.js?body=1" for 127.0.0.1 at 2013-03-10 21:46:44 +1300
Served asset /bootstrap-button.js - 304 Not Modified (5ms)


Started GET "/assets/bootstrap-carousel.js?body=1" for 127.0.0.1 at 2013-03-10 21:46:44 +1300
Served asset /bootstrap-carousel.js - 304 Not Modified (3ms)


Started GET "/assets/bootstrap-collapse.js?body=1" for 127.0.0.1 at 2013-03-10 21:46:44 +1300
Served asset /bootstrap-collapse.js - 304 Not Modified (3ms)


Started GET "/assets/bootstrap-dropdown.js?body=1" for 127.0.0.1 at 2013-03-10 21:46:44 +1300
Served asset /bootstrap-dropdown.js - 304 Not Modified (3ms)


Started GET "/assets/bootstrap-modal.js?body=1" for 127.0.0.1 at 2013-03-10 21:46:44 +1300
Served asset /bootstrap-modal.js - 304 Not Modified (3ms)


Started GET "/assets/bootstrap-scrollspy.js?body=1" for 127.0.0.1 at 2013-03-10 21:46:44 +1300
Served asset /bootstrap-scrollspy.js - 304 Not Modified (3ms)


Started GET "/assets/bootstrap-tab.js?body=1" for 127.0.0.1 at 2013-03-10 21:46:44 +1300
Served asset /bootstrap-tab.js - 304 Not Modified (3ms)


Started GET "/assets/bootstrap-tooltip.js?body=1" for 127.0.0.1 at 2013-03-10 21:46:44 +1300
Served asset /bootstrap-tooltip.js - 304 Not Modified (5ms)


Started GET "/assets/bootstrap-popover.js?body=1" for 127.0.0.1 at 2013-03-10 21:46:44 +1300
Served asset /bootstrap-popover.js - 304 Not Modified (52ms)


Started GET "/assets/bootstrap-typeahead.js?body=1" for 127.0.0.1 at 2013-03-10 21:46:44 +1300
Served asset /bootstrap-typeahead.js - 304 Not Modified (3ms)


Started GET "/assets/bootstrap.js?body=1" for 127.0.0.1 at 2013-03-10 21:46:44 +1300
Served asset /bootstrap.js - 304 Not Modified (13ms)


Started GET "/assets/gmaps4rails/gmaps4rails.base.js?body=1" for 127.0.0.1 at 2013-03-10 21:46:44 +1300
Served asset /gmaps4rails/gmaps4rails.base.js - 304 Not Modified (1ms)


Started GET "/assets/gmaps4rails/gmaps4rails.bing.js?body=1" for 127.0.0.1 at 2013-03-10 21:46:44 +1300
Served asset /gmaps4rails/gmaps4rails.bing.js - 304 Not Modified (2ms)


Started GET "/assets/gmaps4rails/gmaps4rails.googlemaps.js?body=1" for 127.0.0.1 at 2013-03-10 21:46:44 +1300
Served asset /gmaps4rails/gmaps4rails.googlemaps.js - 304 Not Modified (2ms)


Started GET "/assets/gmaps4rails/gmaps4rails.mapquest.js?body=1" for 127.0.0.1 at 2013-03-10 21:46:44 +1300
Served asset /gmaps4rails/gmaps4rails.mapquest.js - 304 Not Modified (2ms)


Started GET "/assets/gmaps4rails/gmaps4rails.openlayers.js?body=1" for 127.0.0.1 at 2013-03-10 21:46:44 +1300
Served asset /gmaps4rails/gmaps4rails.openlayers.js - 304 Not Modified (2ms)


Started GET "/assets/jqueryplugins/addresspicker.js?body=1" for 127.0.0.1 at 2013-03-10 21:46:44 +1300
Served asset /jqueryplugins/addresspicker.js - 304 Not Modified (2ms)


Started GET "/assets/jqueryplugins/browser_detect.js?body=1" for 127.0.0.1 at 2013-03-10 21:46:44 +1300
Served asset /jqueryplugins/browser_detect.js - 304 Not Modified (3ms)


Started GET "/assets/jqueryplugins/charts.js?body=1" for 127.0.0.1 at 2013-03-10 21:46:44 +1300
Served asset /jqueryplugins/charts.js - 304 Not Modified (2ms)


Started GET "/assets/jqueryplugins/jquery.alphanumeric.js?body=1" for 127.0.0.1 at 2013-03-10 21:46:44 +1300
Served asset /jqueryplugins/jquery.alphanumeric.js - 304 Not Modified (1ms)


Started GET "/assets/jqueryplugins/jquery.formrestrict.js?body=1" for 127.0.0.1 at 2013-03-10 21:46:44 +1300
Served asset /jqueryplugins/jquery.formrestrict.js - 304 Not Modified (2ms)


Started GET "/assets/jqueryplugins/jquery.lazyload.js?body=1" for 127.0.0.1 at 2013-03-10 21:46:44 +1300
Served asset /jqueryplugins/jquery.lazyload.js - 304 Not Modified (1ms)


Started GET "/assets/jqueryplugins/raty.js?body=1" for 127.0.0.1 at 2013-03-10 21:46:44 +1300
Served asset /jqueryplugins/raty.js - 304 Not Modified (2ms)


Started GET "/assets/dataTables/jquery.dataTables.js?body=1" for 127.0.0.1 at 2013-03-10 21:46:44 +1300
Served asset /dataTables/jquery.dataTables.js - 304 Not Modified (13ms)


Started GET "/assets/dataTables/jquery.dataTables.bootstrap.js?body=1" for 127.0.0.1 at 2013-03-10 21:46:44 +1300
Served asset /dataTables/jquery.dataTables.bootstrap.js - 304 Not Modified (63ms)


Started GET "/assets/lib/abstract-chosen.js?body=1" for 127.0.0.1 at 2013-03-10 21:46:44 +1300
Served asset /lib/abstract-chosen.js - 304 Not Modified (12ms)


Started GET "/assets/lib/select-parser.js?body=1" for 127.0.0.1 at 2013-03-10 21:46:44 +1300
Served asset /lib/select-parser.js - 304 Not Modified (12ms)


Started GET "/assets/chosen.jquery.js?body=1" for 127.0.0.1 at 2013-03-10 21:46:44 +1300
Served asset /chosen.jquery.js - 304 Not Modified (8ms)


Started GET "/assets/chosen-jquery.js?body=1" for 127.0.0.1 at 2013-03-10 21:46:44 +1300
Served asset /chosen-jquery.js - 304 Not Modified (9ms)


Started GET "/assets/select2.js?body=1" for 127.0.0.1 at 2013-03-10 21:46:44 +1300
Served asset /select2.js - 304 Not Modified (7ms)


Started GET "/assets/highcharts.js?body=1" for 127.0.0.1 at 2013-03-10 21:46:44 +1300
Served asset /highcharts.js - 304 Not Modified (1ms)

Übrigens habe ich gemäß einem Vorschlag zu reddit Assets vorkompiliert und den Server ausgeführt. Fantastische Geschwindigkeiten sehen:

Processing by PagesController#home as HTML
Rendered pages/home.html.erb within layouts/application (1.1ms)
Completed 200 OK in 6ms (Views: 5.4ms | ActiveRecord: 0.0ms)

Ok, ich bin mir nicht sicher, ob dies Hilfe bietet oder nicht, aber die größte Verzögerung tritt zwischen diesen beiden Codezeilen im Stapel auf:

From: /home/funkdified/.rvm/gems/ruby-1.9.3-p392@goodsounds/gems/actionpack-3.2.13.rc1/lib/action_controller/metal/implicit_render.rb @ line 5 ActionController::ImplicitRender#send_action:

    3: def send_action(method, *args)
    4:   ret = super
 => 5:   default_render unless response_body
    6:   ret
    7: end

[2] pry(#<PagesController>)> next

WICHTIGE VERZÖGERUNG

From: /home/funkdified/.rvm/gems/ruby-1.9.3-p392@goodsounds/gems/actionpack-3.2.13.rc1/lib/action_controller/metal/implicit_render.rb @ line 6 ActionController::ImplicitRender#send_action:

    3: def send_action(method, *args)
    4:   ret = super
    5:   default_render unless response_body
 => 6:   ret
    7: end
Abram
quelle
Nur eine Vermutung hier, aber vielleicht laden Sie eine Menge Javascript oder CSS, von denen ich sehe, dass sie nicht vorkompiliert werden. Gibt es eine Chance, dass Sie Ihre Ansicht und Ihr Layout zu Hause oder zumindest Ausschnitte teilen, bei denen Sie glauben, dass das Problem liegt?
Foklepoint
Generieren Sie eine übermäßige Menge an HTML? Die Ansichtszeit war früher quadratisch in der Größe der Seite. Die Zeichenfolge mit der Teilseite wurde bei jeder Verkettung kopiert, während die Ansichtsvorlagen ausgewertet wurden.
Joshuauanapoli
Nein, da ist nicht viel. Vielleicht 200 Zeilen HTML? Wie kann ich die Größe für Sie quantifizieren?
Abram
Es gibt eine große Lücke zwischen dem Senden von Anfragen und dem Empfangen von Antworten, aber leider sagen mir Chrome Timeline und New Relic nicht, was die Ursache ist. Gibt es eine Möglichkeit, den Server zu zwingen, weitere Details anzugeben?
Abram
Hmm, haben Sie in / etc / hosts etwas wie "mysite.local" vs "mysite.localhost" definiert? Letzteres werde ich normalerweise definieren, wenn ich mich entwickle. Aus irgendeinem Grund habe ich kürzlich beschlossen, eine App auf die frühere Weise "mysite.local" auszuführen, und es dauerte 3-5 Sekunden pro Seitenladevorgang. Zurück zu "mysite.localhost" geändert und wieder normal, Sekundenbruchteile zum Laden.
Jemminger

Antworten:

120

Ok, ich habe es herausgefunden (endlich). Ohne eines meiner tatsächlichen Vermögenswerte zu ändern, sehe ich jetzt, dass dies eine Entwicklung ist:

Started GET "/" for 127.0.0.1 at 2013-03-11 23:14:33 +1300
Processing by PagesController#home as HTML
Rendered pages/home.html.erb within layouts/application (1.3ms)

Es stellt sich heraus, dass die Verzögerung durch das config.assets.debug = trueInnere von development.rb verursacht wurde. Wenn Sie dies so falseeinstellen, dass das Problem behoben ist.

Es sieht so aus, als hätte das Rails-Kernteam darüber diskutiert , dies standardmäßig auszuschalten , sich aber gegen die Idee entschieden. In Zukunft würde ich gerne sehen, dass sie etwas in den Kommentarbereich von development.rb aufnehmen, um die Benutzer auf das Potenzial für signifikante Verzögerungen hinzuweisen.

Darf ich folgendes vorschlagen:

# Expands the lines which load the assets 
# May cause significant delays in view rendering

Großartig, sie hörten mich murmeln und aktualisierten die Schienen !

Abram
quelle
1
Wenn es für Ihr Projekt geeignet ist, können Sie Turbolinks verwenden ( github.com/rails/turbolinks ). Dies kann das Problem verringern, da Assets nur beim Laden der ersten Seite geladen werden und Sie den Vorteil des Debuggens von Assets behalten.
Ybart
2
Das hat definitiv geholfen. Eine kleine Korrektur: Das Problem wird tatsächlich durch 'config.assets.debug = true' verursacht und durch Ändern in false wird es behoben.
Ken Fehling
1
@Abram Danke fürs Teilen. Ich kratzte mir eine Weile am Kopf.
Anders
1
Danke Abram. Ich hatte dieses Problem für ungefähr 6 Monate ... :)
Yaru
1
Dies war genau mein Problem - CKE hat mein Rendering beendet. 60 + Sekunden beim Laden der ersten Seite. So eine einfache Lösung.
DNorthrup
34

Das gleiche Problem ist für mich in Rails 4.1+ aufgetreten. Abrams Antwort ist nur teilweise vollständig.

Sie können die config.assets.debug = trueFunktion zur Überprüfung neuer Assets verlassen , sollten sie jedoch deaktivieren

# Adds additional error checking when serving assets at runtime.
# Checks for improperly declared sprockets dependencies.
# Raises helpful error messages.
config.assets.raise_runtime_errors = false

Die Lösung mit config.assets.debugdeaktiviert funktioniert nur, weil Assets einmal kompiliert und Assets einmal überprüft werden. Bei der Überprüfung der Vermögenswerte wird die meiste Zeit verbracht.

Anton K.
quelle
Antulik, könnten Sie dieses Problem lösen? Ich habe Ihre Lösung ausprobiert, mir aber nicht geholfen. Meine App war früher schnell, aber in letzter Zeit wurde sie sehr langsam in der Entwicklung. Manchmal dauert es bis zu 5-6 Sekunden, um die Antwort zu erhalten. In über 90% der Fälle wird die App / das Layout gerendert. stackoverflow.com/questions/35006964/weird-logs-in-rails4
Sean Magyar
Oh, ich habe es mit der obigen Lösung gelöst. Ihre hat nicht funktioniert, weiß aber nicht warum. Ich habe hier allerdings eine Frage. Meine Entwickler-Antwort war ziemlich schnell und wurde vor ein paar Tagen plötzlich sehr langsam. Das Setzen von config.assets.debug auf false hat mein Problem gelöst, aber können Sie sich vorstellen, warum sich dieses Problem so plötzlich entwickelt? Ich bin der Meinung, dass dies ein langsamer Prozess sein sollte. Wenn ich dieses Problem ohne Übergang habe, denke ich, dass ich etwas in meinen Code eingefügt habe.
Sean Magyar
8

Wenn Sie von Rails 3.2.13 kommen, beachten Sie, dass einige Leute dieses Problem erlebt haben und das Zurücksetzen auf 3.2.12 es zu beheben scheint. Weitere Informationen finden Sie hier auf github .

In meinem Fall deaktivieren config.assets.debug beschleunigte das die Geschwindigkeit ein wenig, aber das Zurücksetzen auf 3.2.12 verringerte die Anforderungszeit von ungefähr 4 Sekunden auf ungefähr 250 ms.

Sean O'Hara
quelle
Vielen Dank! Meine 0,2s Seitenanfragen waren mit 3.2.13 auf 15s gesprungen.
Turadg
Dies wurde in Rails 3.2.14
Old Pro
2

Werfen Sie einen Blick auf NewRelic.com - es kostet, aber mit der kostenlosen Testversion können Sie Ihre Anwendung vollständig analysieren und herausfinden, wo Engpässe bestehen.

Abgesehen von New Relic durchlaufen Sie die üblichen Prüfungen, z. B. wann hat es begonnen? Was hast du in letzter Zeit geändert? Haben Sie Rails und / oder Edelsteine ​​aktualisiert? Schauen Sie sich einige frühere Versionen Ihrer Quellcodeverwaltung an und führen Sie sie aus. Versuchen Sie dabei, genau herauszufinden, welches Commit das Problem verursacht hat.

Tritt das Problem bei allen Browsern auf? Wenn Sie den Chrome Timeline Viewer starten, können Sie feststellen, ob der Browser bei einem bestimmten JavaScript-Teil hängen bleibt.

Versuchen Sie auch, Ihren lokalen Entwickler-Webserver auf Thin umzustellen. Bleibt das Problem weiterhin bestehen?

Viel Glück!

DaveStephens
quelle
Leider habe ich ein paar Dinge geändert und auch die Arbeit auf einen neuen Laptop übertragen. Es könnten also ein paar Dinge sein. Ich bezweifle, dass das Laptop-Upgrade es geschafft hat. Ich werde mich mit einem Häkchen bei Ihnen melden, sobald ich bestätige, dass dies ein Juwel ist, aber im Moment möchte ich diese Frage lieber nicht schließen, falls jemand Licht in meine Situation bringen kann.
Abram
1
Welche Version von Rails verwenden Sie? Haben Sie auch versucht, Thin als lokalen Entwickler-Webserver zu verwenden? Verwenden Sie die Quellcodeverwaltung?
DaveStephens
Hi Rails 3.2.13.rc1 ... Ruby 1.9.3 p392 ... Ich benutze Thin. Ja, ich benutze Git mit Bitbucket.
Abram
OK, ich habe 3.2.13.rc1 nicht verwendet, aber es ist ein Release-Kandidat. Wechseln Sie daher zur letzten Release-Version der Produktion (3.2.12), um sicherzustellen, dass dies nicht der Fall ist. Haben Sie Ihren Commit-Verlauf noch einmal durchlaufen, um festzustellen, wann das Problem aufgetreten ist? Eine Sache, die ich in Ihrer Assets-Liste oben bemerke, ist, dass Sie eine Menge Dinge darin haben, die Sie nicht verwenden. Sie sollten diese wahrscheinlich bereinigen (dh Sie laden alle gmaps4rails-CSS, wenn Sie nur eine benötigen, und Sie erscheinen etwas mit selected.query zweimal machen).
DaveStephens
Hey, ich schätze deine Hilfe hier sehr. Ich werde mir das morgen Abend noch einmal ansehen, da Sie zwei gute Vorschläge gemacht haben. Vielen Dank und wir werden uns bei Ihnen melden.
Abram