Prefetch for Fresh
Fresh plugin for prefetching pages powered by Google’s quicklink.
According to Google’s web development guidelines, prefetching leads to faster load times, resulting in higher conversion rates and better user experiences. Prefetching can be implemented using the link tag.
Usage
To use this plugin, just add to your fresh config:
import prefetchPlugin, { Options } from 'https://deno.land/x/prefetch'
const options: Options = {
throttle: 4 // 4 concurrent requests
// ...
}
await start(manifest, {
...
plugins: [
prefetchPlugin(options),
],
});Start your fresh server, access your page. All anchor tags containing a relative
href attribute should be prefetched. To make sure it’s working, open the
Chrome DevTools Network tab and make sure the pages are being prefeetched.
All serializable options accepted by quicklink are also accepted by this plugin.
Strategies
To allow better control over which links are prefetched, this plugin adds an
option called strategy. When set, two different strategies for prefetching are
allowed opt-in, opt-out.
opt-in means only links containing the data-prefetch attribute will be
prefetched. For instance, if you have two links:
<a href="/foo" data-prefetch />
<a href="/bar" />only /foo will be prefetched once it enters the viewport
opt-out does exactly the opposite from the previous strategy. It prefetches
all links but those containing data-noprefetch. For instance
<a href="/foo" data-noprefetch />
<a href="/bar" />will prefetch /bar.
Not setting options.strategy will make this plugin fallback to the usual
quicklink’s behavior, i.e. viewport based prefetching