This project is not covered by Drupal’s security advisory policy.

Sam Stephenson and DHH requested that we not use the name Turbolinks. So we renamed the project to RefreshLess: https://www.drupal.org/project/refreshless. See #2692343-2: Use the official Turbolinks JS or rename the project for background.

Turbolinks makes navigating your web site faster by only loading the parts that change between pages. Uses the Turbolinks technique (pioneered by Rails).

(Note that it does not use the original/official Turbolinks JS, and therefore does not provide the same API yet. It's an alternative implementation of the Turbolinks idea/principles, in a way that makes sense for Drupal.

When clicking a link that points to a URL within the Drupal site, we then keep the current page, but just swap the parts that change between the current page and the next. This means less data on the wire, and — most importantly — less work for the browser.

How does this work?

  1. During rendering, we annotate the regions on the page so JavaScript can find them reliably. For now, Turbolinks works at the region level (and not the block level) to ensure it works with any page, no matter whether it uses Blocks, Panels or Page Manager.
  2. Drupal 8 already has all the necessary cacheability metadata, and in particular cache contexts, which describe how each part of the page varies.
  3. The Turbolinks module uses the cache contexts associated with a particular region to determine whether this region changes compared to the page the user is currently on. It only sends the updated markup for that region if it actually changes.
  4. This results in hugely improved front-end/perceived performance.

So, unlike in Rails, using Turbolinks requires zero configuration and configuration.

Combined with the BigPipe module (which offers significant improvements for the initial page load), this should make just about any Drupal site feel significantly faster.

Supporting organizations: 
Sponsored all development, including the necessary API support in Drupal 8

Project information

Releases