Seitenspezifisches JavaScript in Rails 3.1
Das Standardverhalten von Rails 3.1 beim Zusammenführen von JavaScript in einer einzelnen Datei wirft Bedenken hinsichtlich seitenspezifischer Funktionen auf Code wird unnötigerweise ausgeführt. Um dieses Problem anzugehen, sollten Sie die folgenden Ansätze in Betracht ziehen:
Controller-spezifisches JavaScript:
Die Asset Pipeline-Dokumentation bietet eine Lösung für Controller-spezifisches JavaScript. Ein ProjectsController hätte beispielsweise entsprechende Asset-Dateien unter app/assets/javascripts/projects.js.coffee und app/assets/stylesheets/projects.css.scss. Einzigartiges JavaScript oder CSS kann in diesen Dateien platziert und nur für die relevanten Controller geladen werden mit:
ID/Klassenbasierte Codeauslösung:
Alternativ kann seitenspezifischer Code bedingt ausgeführt werden von Überprüfung auf das Vorhandensein bestimmter IDs oder Klassen. Überprüfen Sie im JavaScript, ob das entsprechende Element vorhanden ist, und führen Sie den zugehörigen Code aus, falls er gefunden wird. Dadurch wird sichergestellt, dass Code nur ausgeführt wird, wenn das relevante Element vorhanden ist.
Beispiel:
if ($("#search-box").length > 0) { // Execute JavaScript for search box }
Vorteile der bedingten Codeauslösung:
Das obige ist der detaillierte Inhalt vonWie vermeide ich unnötige JavaScript-Ausführung in Rails 3.1?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!