4

Je travaille actuellement sur une application avec beaucoup de code javascript. J'écris le code javascript en ligne sur chacune des pages/partiels, cependant la plupart du code est réutilisé ailleurs. J'essaie de trouver un moyen de refactoriser ces petits scripts en quelque chose de plus pratique et maintenable. J'utilise jQuery, donc je n'utilise aucun des générateurs JS intégrés.Stratégies d'organisation Javascript pour Rails 3

Jusqu'à présent, j'ai pensé des éléments suivants:

  • il suffit de déplacer tout en application.js et prendre avantage des nouvelles aides de style UJS. C'est seulement un peu mieux que ce que j'ai en ce moment parce que je vais finir avec un gros fichier JS maladroit.

  • Utilisez js_erb gem qui fournit un moyen d'écrire le code source javascript dans app/javascripts et d'obtenir i18n, les modèles HTML et la compilation automatiquement.

  • Utilisez sprockets-rails qui semble également une bonne alternative même si je ne l'ai jamais essayé et je ne suis pas sûr que ce soit compatible avec rails3.

Avez-vous une expérience/une suggestion à ce sujet?

Répondre

0

Personnellement, je grouper le code javascript dans des fichiers qui ont du sens, puis les inclure sur les pages qui le nécessitent. Par exemple, si vous avez du code qui est appelé sur la plupart des pages, je l'inclurais dans le fichier application.js. Mais, si j'ai du code qui est seulement inclus sur mes pages de contrôleur d'utilisateur alors je ferais un dossier de user.js et l'inclurais seulement sur ces pages. En faisant cela, le code est organisé d'une manière qui m'est facile à maintenir. Il pourrait y avoir des compromis de performance pour cela, mais dans mon cas, la maintenabilité est plus importante.

0

groupe I du code JS dans des fichiers, séparés de partials

  1. Partials peuvent être mises en cache et les mises à jour JS ne nécessitent la suppression du cache html
  2. Une meilleure organisation du code, comme la fonctionnalité se complique, il serait plus facile pour gérer et optimiser
  3. au fil du temps JS va croître en taille et vous pouvez utiliser CDN pour livrer vos JS, c'est un booster de performance pour les temps de chargement de page
1

Sprockets 2.0 est en cours de développement très actif et sera livré avec Rails 3.1 dans le cadre d'ActionPack. La chose la plus simple à faire est d'attendre Rails 3.1 ou de passer à Rails 3.1.0.RC4 en pointant votre Gemfile à elle comme:

gem 'rails', :git => 'git://github.com/rails/rails.git', :tag => 'v3.1.0.rc4' 

et faire

bundle install 

En attendant, prenez la tête commence maintenant comment cela fonctionne:

+0

+1 Je suis d'accord avec cela, mais j'éviterais probablement une mise à niveau anticipée s'il s'agit d'une application de production, à moins que vous ayez un appétit pour le risque - c'est un candidat à la libération pour une raison :) –