Auf Schienen legte ich alle JavaScript-Dateien in Anwendung js-Datei.Rails js-Dateien und Seite spezifische js
//= require jquery
//= require jquery_ujs
//= require dropzone
//= require jquery.cookie
//= require toastr
//VENDOR JS BEGINS
//= require pace/pace.min
//= require modernizr.custom
//= require jquery-ui/jquery-ui.min
//= require boostrapv3/js/bootstrap.min
//= require jquery/jquery-easy
//= require jquery-unveil/jquery.unveil.min
//= require jquery-bez/jquery.bez.min
//= require jquery-ios-list/jquery.ioslist.min
//= require jquery-actual/jquery.actual.min
//= require jquery-scrollbar/jquery.scrollbar.min
//= require bootstrap-select2/select2.min
//= require switchery/js/switchery.min
//= require imagesloaded/imagesloaded.pkgd.min
//= require jquery-isotope/isotope.pkgd.min
//= require classie/classie
//= require codrops-stepsform/js/stepsForm
//= require bootstrap-datepicker/js/bootstrap-datepicker
Dann rufe ich Javascript im Kopf von application.html.erb als;
Dann überprüfe ich die Geschwindigkeit der Website und ich werde vorgeschlagen, diesen JS-Aufruf an Körper zu nehmen. Ich weiß, ich sollte BTW. Aber das Problem ist mit dem seitenspezifischen JS-Code.
Stellen Sie sich vor Ich habe home.html.erb
wo Benutzer Datum auswählen. Also habe ich Datapicker-Code in diese Seite eingefügt.
Wenn ich <%= javascript_include_tag 'application' %>
in an der Unterseite des Körpers nehmen, dieses Mal, weil die jquery & picker noch nicht so speziell für diese Seite JS geladen gibt no method error
Was ist der beste Ansatz wäre?
Ich schätze, Sie verwenden keine Turbolinks? Wenn nicht, bedeutet das, dass Sie den gesamten HTML-Code (einschließlich der Assets) für jede Navigation laden. Wenn das der Fall ist, sollte Ihre erste Priorität sein, wie Sie alles nur einmal laden (wie mit Turbolinks oder Ajax-Apps wie eckig), wenn Sie die Leistung verbessern wollen. –