Turbolinks

Comment désactiver turbolinks sur un lien dans Ruby On Rails ?

Partagez sur:

Selon la documentation officielle, Turbolinks accélère la navigation dans votre application Web. Il vous permet de bénéficiez des avantages et les performances d’une application single-page sans la complexité supplémentaire d’un framework JavaScript côté client. Il utilise HTML pour afficher vos vues côté serveur et lier les pages comme d’habitude. Lorsque vous suivez un lien, Turbolinks extrait automatiquement la page, bascule dans son <body> et fusionne sa <head>, le tout sans que cela entraîne le coût du chargement d’une page complète.

Donc en gros, turbolinks rend la navigation discrète et fluide, il est utilisé de base les versions récentes du célèbre framework web Ruby On Rails.

Pourquoi désactiver Turbolinks?

Il se trouve que souvent turbolinks rentre en conflit avec javascript ou jquery et les empêches de fonctionner normalement, vu que l’entête des pages n’est pas recharger, donc du coup on se retrouve avec du javascript ou jquery cassé . Bien vrai qu’il existe des solutions pour contourné ces problème avec des hooks.

Si vous n’avez pas besoin de Turbolinks dans votre application Rails, vous voudrez éviter les bogues avec Javascript, jQuery et toutes les bibliothèques Javascript dues à Turbolinks ; alors, vous voulez apprendre à supprimer Turbolinks? Allons-y. Nous verrons d’abord comment le faire sur une page spécifique, puis sur l’ensemble de l’application Rails.

Désactiver Turbolinks sur une page spécifique

La balise de désactivation de Turbolinks a été modifiée dans Turbolinks 5, voyons comment cela fonctionne maintenant.

Selon la documentation, vous pouvez le désactiver sur une page en incluant data-turbolinks = « false » dans un div de la page. Tous les liens seront désactivés. Mais vous pouvez réactiver Turbolinks sur un lien en définissant data-turbolinks sur true. Vos liens doivent être dans cette div:

<div data-turbolinks="false">
<a href="/">Turbolinks disabled</a>
<a href="/" data-turbolinks="true">Turbolinks enabled</a>
 <a href="/">Disabled again</a>
</div>

 

Vous pouvez également le désactiver directement sur le lien, sans avoir besoin d’un div:

<a href="/" data-turbolinks="false">Disabled</a>

 

Comment désactiver Turbolinks entièrement en 3 étapes ?

Dans votre Gemfile, supprimez le gem ‘turbolinks’
1. Chercher dans app/assets/javascripts/application.js et supprime la ligne  //= require turbolinks
2. Dans app/views/layouts/application.html.erb, vous allez voir ces deux lignes:
2.1. <%= stylesheet_link_tag ‘application’, media: ‘all’, ‘data-turbolinks-track’: ‘reload’ %>
2.2. <%= javascript_include_tag ‘application’, ‘data-turbolinks-track’: ‘reload’ %>
Vous avez besoin de supprimer, sur chaque ligne : media: ‘all’, ‘data-turbolinks-track’: ‘reload’ and ‘data-turbolinks-track’: ‘reload’.

NB : N’oubliez pas de lancer bundle et de redémarrer votre serveur.

Comment désactiver Turbolinks lors de la génération d’une nouvelle application ?

Rails installera Turbolinks par défaut lorsque vous exécuterez Rails new myapp, car dans la plupart des cas, cela ne posera pas de problème. Mais vous pouvez facilement désactiver Turbolinks en utilisant le drapeau –skip-turbolinks.
Cela pourrait vous éviter des problèmes difficiles à résoudre. Surtout lorsque vous développez votre application et que vous n’avez pas encore besoin de ce type d’optimisation.

 

Amonce DEMBELE


Partagez sur: