Quicklink Versions Save

⚡️Faster subsequent page-loads by prefetching in-viewport links during idle time

2.3.0

1 year ago
  • 2.3.0 (6189deb)
  • Add support for same-site prerendering with Speculation Rules API (#258) (3d26f40), closes #258
  • Create node.js.yml (2f69b42)
  • Fix Markdown (#250) (13e2f82), closes #250
  • Update node.js.yml (312dbbb)
  • chore: Modify repository default languages (#264) (5a0d396), closes #264

2.2.0

1 year ago
  • [release] additions to changelog (6ac410c)
  • [release] bump core to 2.2.0 (418eb50)
  • [release] bump site to 2.2.0 (22a055c)
  • [release] update changelog for 2.2.0 (bb1a648)
  • [site] reorder logos (09907bb)
  • [site] update version (7babbda)
  • Add Magento Quicklink module (Readme + Site) (#216) (c77e057), closes #216
  • Added threshold option to allow users select the % of link areas that entered the viewport before (d3746e1), closes #214
  • Instructions to debug Quicklink (2b3dc21)

2.1.0

3 years ago
  • [docs] Add React SPA demos to repo and site (#179) (179cb56), closes #179
  • [docs] drop highlightjs reference and link up prism styles (b91872b)
  • [docs] Fix quicklink logo (25829de)
  • [docs] minor tweak to header text (cd31382)
  • [docs] refactor api docs syntax highlighting (59f7eca)
  • [docs] refactor copy-snippets syntax highlighting (5445a8b)
  • [docs] refactor measure docs syntax highlighting (eaa87ac)
  • [docs] refactor over-prefetching docs syntax highlighting (6ec1287)
  • [docs] refactor react docs syntax highlighting (ba5984d)
  • [docs] refactor usage docs syntax highlighting (25367f4)
  • [docs] remainder of syntax highlighting fixes (cf32a85)
  • [docs] remove highlightjs (7ff8c8f)
  • [docs] Update CHANGELOG (c4a4726)
  • [docs] various style theme improvements (06786fb)
  • [feat] (options): Add a hrefFn option to build the URL to prefetch. (#201) (ee072d4), closes #201
  • [feat] delay option to reduce impact on CDNs and servers [alternative without data-attributes] (#2 (5cdf569), closes #217
  • [infra] add eleventy syntax highlighting (b48f80d)
  • [infra] Add site to firebase hosting config (fe43486)
  • [infra] bump version to 2.1.0 (81232e8)
  • Added Ray-Ban and Oakley from Luxxotica to trustedByLogos section (#202) (b4494b0), closes #202
  • Correct typo, duplicate "passing" (#185) (932f655), closes #185
  • Fix issues typo in 'network-idle.js' (#218) (534e7b3), closes #218
  • New demo page (#205) (5205d62), closes #205
  • update homepage url in package.json (#184) (172275b), closes #184
  • Updating broken link (224df77)
  • Fix: Cannot read property 'then' of undefined (#188) (a8872b8), closes #188
  • chore(deps): bump http-proxy from 1.18.0 to 1.18.1 (#200) (0aa5157), closes #200

2.0.0

3 years ago

2.0.0 is a major rewrite of Quicklink, introducing a first-class prefetch method that can be used in more contexts, new features like limit, throttle and other DX improvements.

In-viewport prefetching is now available via the listen() method.

  • adds limit option – total allowed requests
  • adds throttle option – max concurrency control via throttles
  • exports prefetch method directly
  • exports previous default as listen method
  • aborts listen early if no IO support
  • only require IO support when using listen
  • when okay, listen returns a reset / unlisten function
  • allows prefetch to accept url[] list

For the latest documentation around this release, see https://getquick.link/

2.0.0-alpha

4 years ago

2.0 is a major rewrite of Quicklink, introducing a first-class prefetch method that can be used in more contexts, new features like limit, throttle and other DX improvements. In-viewport prefetching is now available via the listen() method.

v1.0.1

4 years ago

This is a maintenance release of Quicklink 🧹The largest changes in this version are bug-fixes for Safari, docs updates and some brand new demos to learn from 🤾‍♂️

  • view commit • Check if `requestIdleCallback` exists in `window` (#112)
  • view commit • Fail silently, don’t throw an error, when IntersectionObserver isn’t available (#113)
  • view commit • Mention Safari ≥ 12.1 working without polyfills (#111)
  • view commit • HTML formatting tidy for Tests & Demos (#114)
  • view commit • Add homepage and bugs links to package.json (#116)
  • view commit • HTTPS link to nodejs.org (#110)
  • view commit • GitHub Issue Templates (#109)
  • view commit • remove extraneous full stops / periods from comment (#105)
  • view commit • Update link to Gatsby with Guess.js (#108)
  • view commit • remove unneeded type="text/css" from demo (#106)
  • view commit • Create .editorconfig (#61)
  • view commit • remove unneeded type="text/css" from demo page (#104)
  • view commit • (demos) Add new demos to README
  • view commit • (demo) Introduce new demos for basic + workbox usage
  • view commit • (docs) Update README: note on session stitching
  • view commit • fix: Attempt to address build issues (Travis)
  • view commit • HTTPS link to gruntjs.com (#100)
  • view commit • Use latest version of polyfill.io JS (#92)
  • view commit • Merge pull request #91 from mherchel/master
  • view commit • Add note to README about Drupal module.
  • view commit • Merge pull request #86 from dieulot/master
  • view commit • Mention instant.page as a related project
  • view commit • Merge pull request #84 from luehrsenheinrich/update/readme-wordpress-plugin
  • view commit • Update the Readme and add a mention of the WordPress plugin
  • view commit • infra(package.json): Update microbundle to fix "missing JSX plugin" issue
  • view commit • Merge pull request #74 from GoogleChromeLabs/size-optimizations
  • view commit • A few quick size optimizations
  • view commit • Update microbundle to fix "missing JSX plugin" issue
  • view commit • docs(README): minor fix to import syntax
  • view commit • Fix ES Module import syntax
  • view commit • Merge pull request #68 from HiFaraz/patch-1
  • view commit • fix(README): use UMD file for <script> tags
  • view commit • docs(browser-support): add note for IE9-10 users (#67)
  • view commit • infra(travis): CI - update Yarn with the recommended official commands
  • view commit • infra(package.json): use yarn for all scripts
  • view commit • ci: update Yarn with the recommended official commands
  • view commit • ci: use Yarn for all scripts
  • view commit • docs(README): add simplified Chinese version for README.md (#36)
  • view commit • docs(translated README): link to zh-CN MDN docs
  • view commit • Merge pull request #60 from coliff/patch-1
  • view commit • Update repo path in package.json
  • view commit • docs(README): add simplified Chinese version for README.md (#36)
  • view commit • docs(README): formatting -> recipe headings
  • view commit • Merge pull request #53 from GoogleChromeLabs/docs-fragment
  • view commit • docs(README): address feedback (ignores)
  • view commit • docs(README): add URL fragments note about ignores (#52, #49)
  • view commit • fix(prefetching): unobserve links once prefetched
  • view commit • fix: stop observing links once prefetched;
  • view commit • chore(release): add conventional-changelog-cli & changelog
  • 1.0.0

    5 years ago

    Quicklink attempts to make navigations to subsequent pages load faster by prefetching in-viewport links during idle time

    A huge thanks to everyone that has been trying out quicklink, sharing feedback and deploying it to production (like Hashnode and CleverTogether). We're glad you found our micro-library helpful. We've just published a new version to address early feature requests 🗣

    New features 🎉

    Control what domains can be prefetched 🏘

    We now support origins: a new static array of URL hostname strings that are allowed to be prefetched. Defaults to the same domain origin, which prevents any cross-origin requests. This was a requested change in behavior from earlier versions of quicklink which would fetch all origins by default.

    You can use origins as follows:

    Specify a custom list of allowed origins

    Provide a list of hostnames that should be prefetch-able. Only the same origin is allowed by default.

    Important: You must also include your own hostname!

    quicklink({
      origins: [
        // add mine
        'my-website.com',
        'api.my-website.com',
        // add third-parties
        'other-website.com',
        'example.com',
        // ...
      ]
    });
    

    Allow all origins

    Enables all cross-origin requests to be made.

    Note: You may run into CORB and CORS issues!

    quicklink({
      origins: true
    });
    

    Control what URLs are ignored by RegExp, Function or Array ✋

    We also now support ignores which adds support for filtering. This can be a RegExp, Function, or Array that further determines if a URL should be prefetched. These filters run after the origins matching has run.

    Ignores can be useful for avoiding large file downloads or for responding to DOM attributes dynamically.

    // Same-origin restraint is enabled by default.
    //
    // This example will ignore all requests to:
    //  - all "/api/*" pathnames
    //  - all ".zip" extensions
    //  - all <a> tags with "noprefetch" attribute
    //
    quicklink({
      ignores: [
        /\/api\/?/,
        uri => uri.includes('.zip'),
        (uri, elem) => elem.hasAttribute('noprefetch')
      ]
    });
    

    If you tried out the first release of quicklink and noticed it prefetching /logout pages, download links or any other resources you'd rather it not, this new feature should help.

    Bug fixes

    This release also includes a few bug-fixes. These include URLs being prefetched are now also normalized by default (https://www.google.com vs. https://www.google.com/ vs https:\\www.google.com/). Thanks to @mathiasbynens for bringing this to our attention.

    See API docs and recipes for details on how to use these new features. You can also find a new FAQ for answers to common questions we've had users ask about the project.

    Size check 📦

    Bundle size: 782 bytes minified & gzipped. We were able to introduce new features while keeping our size down in large part thanks to clever code-golfing by @lukeed ⛳️

    Thanks 😍

    With huge thanks to @lukeed and our lovely contributors for all of their help with this release ❤️We couldn't have done it without you!.

    Full release notes