Rails 3 – y compris JavaScript dans une vue?

voici ce que j’essaie de faire correctement …. Lorsqu’un utilisateur se connecte et est redirigé vers la page de destination, je souhaite exécuter un peu de jquery ajax pour récupérer et injecter du contenu.

Je l’avais à l’origine dans mon fichier application.js, mais le problème, c’est que le code existe pour les utilisateurs qui ne sont pas connectés, ce qui signifie que je dois append une logique pour prendre en compte ce qui ne semble pas être propre.

Ce que j’aimerais, c’est lorsque la vue est appelée pour pouvoir inclure du JavaScript …. J’ai essayé de la coller dans le fichier vue mais cela a échoué car il est chargé avant JQUERY, qui se trouve au bas de la page. .

Comment Rails 3 gourous gère-t-il cela? Merci!

Eh bien, vous pouvez inclure le fichier jQuery en haut.

Si ce n’est pas une option, ajoutez <%= yield :javascript %> dans la présentation située sous l’inclinaison jQuery et effectuez les actions suivantes:

 <% content_for :javascript do %>  <% end %> 

Il sera placé au bon endroit dans votre mise en page. (Cependant, je vous conseillerais, pour la mise en cache, d’écrire le code Javascript dans un fichier externe et de l’inclure si nécessaire au lieu d’utiliser du code Javascript en ligne. Juste une bonne pratique.)

Chargez jQuery à partir de Google CDN et chargez votre JS spécifique à la vue après. Si vous vous inquiétez de la vitesse de la page de destination pour les utilisateurs non connectés, placez-la en cache.

Si vous souhaitez toujours l’optimiser davantage, utilisez un proxy inverse tel que Sqiud. Vous pouvez également utiliser Jammit ou Asset Packager (http://synthesis.sbecker.net/pages/asset_packager) pour réduire votre code javascript et CSS.

Un conseil, vous devriez concentrer vos efforts sur les performances après avoir fini de rédiger votre application, il est facile de se laisser prendre à des problèmes moins prioritaires qui gêneront vos efforts de développement.

Cela vous facilitera la tâche si vous chargez jQuery plus tôt dans le document. Si vous le chargez à partir des API Google, il est de toute façon probable qu’il soit mis en cache dans le navigateur de votre client. Par conséquent, l’augmentation du temps de chargement des pages, par ailleurs négligeable, devient nulle.