Quicklink Logo

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:

  1. Works with all modern browsers (IE11 with the polyfill loaded)
  2. Detects links within the viewport (using Intersection Observer)
  3. Waits until the browser is idle (using requestIdleCallback)
  4. Checks if the user isn't on a slow connection (using navigator.connection.effectiveType) or has data-saver enabled (using navigator.connection.saveData)
  5. 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.behaviors to automatically prefetch URLs that get inserted via AJAX.
  • By default, loads the Quicklink library only for anonymous users.
  • D7 only: By default, only loads if page caching and block caching are enabled.
  • 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 noprefetch hash or querystring parameter exists within the URL querystring.
  • Automatically ignores links that have a noprefetch or download attribute.
  • Automatically ignores the user/logout link 😎.
  • 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.
  • Option to load Intersection Observer polyfill so Quicklink will work with older browsers.
  • Lots more!

Roadmap

The 2.0.x version is stable and supports both Drupal 8, 9, and 10. The Drupal 7 version of the module is also stable.

Quicklink downloading files
Network requests being automatically downloaded while the user scrolls down the page.
Supporting organizations: 
AttachmentSize
Quicklink downloading files884.67 KB

Project information

Releases