Optimiser l'utilisation de ses partials avec Rails

06/04/2020

Guillaume Briday

Développement Back

Partials avec Rails

En fonction de comment sont utilisés les partials en Rails, il y a un impact très important sur les performances.

Il faut noter deux ou trois choses. La différence de performance est de l’ordre 100ms à 5ms juste dans le rendering des partials.

Tous les chemins sont absolus

Cela permet à Rails de ne pas avoir à deviner le chemin et ainsi gagner ce temps de calcul.

# Don't
render 'form'

# Do
render 'users/form'

Toujours utiliser le mot-clé collections

Cela va permettre à Rails de mettre en cache le partial en question pour y injecter les données sans avoir à recompiler le template à chaque itération. C'est sûrement le gain le plus important.

# Don't
- @users.each do |user|
  render 'users/user', user: user

# Do
render partial: 'users/user', collection: @users

Toujours utiliser des variables locales

Utiliser des variables d'instance dans un partial rend difficile la réutilisation de ce dernier. Cela ne permettra pas de rendre leur nom générique si besoin, ni d'omettre certaines valeurs en fonction de la situation.

# Don't
render 'form'

# Do
render 'form', user: @user

Impact des partials sur les performances

Les partials Rails influencent directement le temps de rendu des vues. En optimisant leur utilisation, vous pouvez réduire considérablement le temps de chargement, ce qui est essentiel pour améliorer les performances de votre application. L'impact peut varier de plusieurs centaines de millisecondes à quelques millisecondes, en fonction des pratiques adoptées.

Pratiques avancées avec les partials Rails

  1. Cache fragmentaire : Si un partial est fréquemment utilisé, vous pouvez utiliser le cache fragmentaire afin d'éviter de le recompiler à chaque fois.
  2. Mise à jour asynchrone : Associez vos partials à des appels AJAX pour recharger uniquement certaines sections de la page sans la recharger entièrement.

Des partials bien utilisées pour un Rails plus performant

En appliquant ces techniques, vous maximisez les performances de vos partials Rails tout en garantissant une expérience utilisateur fluide et optimisée.