Quicklink
This module integrates the Quicklink JavaScript library into your Drupal site. Quicklink automatically prefetches links in the viewport during idle time, speeding up subsequent page loads. It intelligently avoids prefetching on slow connections or when data saving is enabled, and offers several configuration options to control which links are prefetched.
This module provides an implementation of Google Chrome Lab's Quicklink library for Drupal. Quicklink is a lightweight (< 1kb compressed) JavaScript library that enables faster subsequent page-loads by prefetching in-viewport links during idle time.
How Quicklink works
Quicklink makes navigation to subsequent pages faster. It:
- Works with all modern browsers
- Detects links within the viewport (using Intersection Observer)
- Waits until the browser is idle (using requestIdleCallback)
- Checks if the user isn't on a slow connection (using
navigator.connection.effectiveType) or has data-saver enabled (usingnavigator.connection.saveData) - Prefetches URLs to the links (using
<link rel=prefetch>).
What this module provides
This is a lightweight wrapper module that provides sensible defaults. Most sites will not need to modify any configuration.
- Inserts the Quicklink library — either off of a CDN, or off the filesystem (if present).
- Works with
Drupal.behaviorsto automatically prefetch URLs that get inserted via AJAX. - By default, loads the Quicklink library only for anonymous users.
- Option to disable loading the Quicklink library on individual content types.
- Has an option to disable loading the Quicklink library is PHP sessions are detected (useful for Drupal Commerce sites).
- By default, ignores the prefetching of administrative links, AJAX-enabled links, and links that end with a file extension.
- Provides option to ignore URLs with hashes (#) in them.
- Provides a field for URL patterns to ignore.
- Will not prefetch if a
noprefetchhash or querystring parameter exists within the URL querystring. - Automatically ignores links that have a
noprefetchordownloadattribute. - Automatically ignores the
user/logoutlink 😎. - Provides a field to include additional domains that Quicklink will prefetch from (other than the origin domain).
- Provides a debug mode checkbox that will help you figure out why or why not a link is getting prefetched.
- Lots more!
Roadmap
- The 3.0.x version is now stable. It loads the 3.x version of the Quicklink library.
- The 2.0.x version is stable and supports both Drupal 8-11.
- The Drupal 7 version of the module is also stable.