À ma connaissance, tout votre JavaScript est fusionné en un seul fichier. Rails le fait par défaut lorsqu'il ajoute //= require_tree .
au bas de votre application.js
fichier manifeste.
Cela ressemble à un vrai sauveteur, mais je suis un peu préoccupé par le code JavaScript spécifique à la page. Ce code est-il exécuté sur chaque page? La dernière chose que je veux, c'est que tous mes objets soient instanciés pour chaque page alors qu'ils ne sont nécessaires que sur 1 page.
De plus, n'y a-t-il pas un potentiel de code qui se heurte aussi?
Ou placez-vous une petite script
balise au bas de la page qui appelle simplement une méthode qui exécute le code javascript de la page?
Vous n'avez donc plus besoin de require.js?
Merci
EDIT : J'apprécie toutes les réponses ... et je ne pense pas qu'ils s'attaquent vraiment au problème. Certains d'entre eux concernent le style et ne semblent pas se rapporter ... et d'autres mentionnent simplement javascript_include_tag
... qui je sais existe (évidemment ...) mais il semblerait que la voie à suivre pour Rails 3.1 consiste à récapituler tout votre JavaScript dans 1 fichier plutôt que de charger du JavaScript individuel au bas de chaque page.
La meilleure solution que je puisse trouver consiste à envelopper certaines fonctionnalités dans des div
balises avec id
s ou class
es. Dans le code JavaScript, vous vérifiez simplement si le id
ou se class
trouve sur la page, et si c'est le cas, vous exécutez le code JavaScript qui lui est associé. De cette façon, si l'élément dynamique n'est pas sur la page, le code JavaScript ne s'exécute pas - même s'il a été inclus dans le application.js
fichier massif emballé par Sprockets.
Ma solution ci-dessus a l'avantage que si un champ de recherche est inclus sur 8 des 100 pages, il ne fonctionnera que sur ces 8 pages. Vous n'aurez pas non plus à inclure le même code sur 8 des pages du site. En fait, vous n'aurez plus jamais à inclure de balises de script manuelles sur votre site.
Je pense que c'est la réponse à ma question.
application.js
), et en fait la référence que vous avez fournie explique pourquoi il en est ainsi: le téléchargement est le partie la plus lente du processus d'exécution JS. De nombreux petits fichiers sont plus faciles à mettre en cache qu'un gros. Les gens de Unholy Rails ne semblent pas réaliser, alors, que leurs recommandations sont incompatibles avec les principes auxquels ils essaient de se conformer, et donc leurs recommandations ne devraient pas être prises au sérieux.