{{ $title }}
45 | 46 | {{ if .Date }} 47 | Planted {{ $date }}
48 | {{ if ne $lastmod $date}}
49 |
Pruned {{ .Lastmod.Format "January 2, 2006" }}
50 | {{ end }}
51 |
├── .github ├── FUNDING.yml └── workflows │ └── hugo.yml ├── .gitignore ├── LICENSE ├── contributing.md ├── docs ├── .hugo_build.lock ├── archetypes │ └── default.md ├── cms │ └── copy.js ├── config.toml ├── content │ ├── _index.md │ ├── cms │ │ ├── copy.js │ │ ├── google-tag-manager.md │ │ ├── shopify.md │ │ ├── squarespace.md │ │ ├── webflow.md │ │ ├── wix.md │ │ └── wordpress.md │ ├── required.js │ ├── tachyon-white.svg │ ├── tachyon.svg │ ├── tachyonDemo.gif │ └── wave.css ├── css │ └── main.css ├── public │ ├── categories │ │ ├── index.html │ │ └── index.xml │ ├── cms │ │ ├── copy.js │ │ ├── google-tag-manager │ │ │ └── index.html │ │ ├── index.html │ │ ├── index.xml │ │ ├── self-hosting │ │ │ └── index.html │ │ ├── shopify │ │ │ └── index.html │ │ ├── squarespace │ │ │ └── index.html │ │ ├── webflow │ │ │ └── index.html │ │ ├── wix │ │ │ └── index.html │ │ └── wordpress │ │ │ └── index.html │ ├── css │ │ └── main.css │ ├── favicon.ico │ ├── index.html │ ├── index.xml │ ├── required.js │ ├── sitemap.xml │ ├── tachyon.svg │ ├── tachyonDemo.gif │ ├── tags │ │ ├── index.html │ │ └── index.xml │ └── wave.css ├── static │ └── css │ │ └── main.css ├── tachyonDemo.gif └── themes │ └── digitalgarden │ ├── .gitignore │ ├── LICENSE │ ├── archetypes │ └── default.md │ ├── assets │ └── css │ │ └── tailwind.css │ ├── layouts │ ├── 404.html │ ├── _default │ │ ├── _markup │ │ │ └── render-link.html │ │ ├── baseof.html │ │ ├── list.html │ │ └── single.html │ ├── articles │ │ ├── list.html │ │ └── single.html │ ├── index.html │ ├── partials │ │ ├── head.html │ │ └── icon │ │ │ ├── closeIcon.html │ │ │ ├── codebergIcon.html │ │ │ ├── codepenIcon.html │ │ │ ├── dribbbleIcon.html │ │ │ ├── emailIcon.html │ │ │ ├── externalIcon.html │ │ │ ├── githubIcon.html │ │ │ ├── gitlabIcon.html │ │ │ ├── instagramIcon.html │ │ │ ├── linkedinIcon.html │ │ │ ├── mastodonIcon.html │ │ │ ├── menuIcon.html │ │ │ ├── rssfeedIcon.html │ │ │ ├── sunIcon.html │ │ │ ├── twitchIcon.html │ │ │ └── twitterIcon.html │ ├── portfolio │ │ ├── list.html │ │ └── single.html │ └── stack │ │ └── list.html │ ├── static │ └── css │ │ └── main.css │ └── theme.toml ├── localized ├── readme.ko.md ├── readme.zh-CN.md └── readme.zh-TW.md ├── readme.md └── tachyon ├── LICENSE ├── package.json ├── readme.md ├── tachyon.js ├── tachyon.min.js ├── test ├── driver.js ├── index.html ├── sameorigin.html ├── whitelist-sameorigin.html └── whitelist.html └── wordpress ├── tachyon.php └── tachyon.zip /.github/FUNDING.yml: -------------------------------------------------------------------------------- 1 | # These are supported funding model platforms 2 | 3 | github: [weebney] 4 | -------------------------------------------------------------------------------- /.github/workflows/hugo.yml: -------------------------------------------------------------------------------- 1 | # Sample workflow for building and deploying a Hugo site to GitHub Pages 2 | name: Deploy Hugo site to Pages 3 | 4 | on: 5 | # Runs on pushes targeting the default branch when docs directory is edited 6 | push: 7 | branches: ["main"] 8 | paths: ['docs/**'] 9 | 10 | # Allows you to run this workflow manually from the Actions tab 11 | workflow_dispatch: 12 | 13 | # Sets permissions of the GITHUB_TOKEN to allow deployment to GitHub Pages 14 | permissions: 15 | contents: read 16 | pages: write 17 | id-token: write 18 | 19 | # Allow one concurrent deployment 20 | concurrency: 21 | group: "pages" 22 | cancel-in-progress: true 23 | 24 | # Default to bash 25 | defaults: 26 | run: 27 | shell: bash 28 | 29 | jobs: 30 | # Build job 31 | build: 32 | runs-on: ubuntu-latest 33 | env: 34 | HUGO_VERSION: 0.102.3 35 | steps: 36 | - name: Install Hugo CLI 37 | run: | 38 | wget -O ${{ runner.temp }}/hugo.deb https://github.com/gohugoio/hugo/releases/download/v${HUGO_VERSION}/hugo_extended_${HUGO_VERSION}_Linux-64bit.deb \ 39 | && sudo dpkg -i ${{ runner.temp }}/hugo.deb 40 | - name: Checkout 41 | uses: actions/checkout@v3 42 | with: 43 | submodules: recursive 44 | - name: Setup Pages 45 | id: pages 46 | uses: actions/configure-pages@v2 47 | - name: Build with Hugo 48 | env: 49 | # For maximum backward compatibility with Hugo modules 50 | HUGO_ENVIRONMENT: production 51 | HUGO_ENV: production 52 | run: | 53 | cd docs && hugo --gc --minify 54 | - name: Upload artifact to GH pages 55 | uses: actions/upload-pages-artifact@v1 56 | with: 57 | path: ./docs/public 58 | 59 | # Deployment job 60 | deploy: 61 | environment: 62 | name: github-pages 63 | url: ${{ steps.deployment.outputs.page_url }} 64 | runs-on: ubuntu-latest 65 | needs: build 66 | steps: 67 | - name: Deploy to GitHub Pages 68 | id: deployment 69 | uses: actions/deploy-pages@v1 70 | 71 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | /test.html 2 | 3 | tachyon/.eslintrc.json 4 | tachyon/node_modules 5 | tachyon/package-lock.json 6 | 7 | tachyon/test/tachyon.js 8 | 9 | 10 | /build 11 | 12 | /docs/node_modules 13 | /docs/.hugo_build.lock 14 | /docs_old 15 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | Copyright 2023 weebney 2 | 3 | Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: 4 | 5 | The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. 6 | 7 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -------------------------------------------------------------------------------- /contributing.md: -------------------------------------------------------------------------------- 1 | # Contributing 2 | 3 | Tachyon subscribes to the following philosophy: 4 | 5 | - If this project is not helping you, then there is a bug 6 | - If you are having a bad time using this project, then there is a bug 7 | - If the documentation is confusing, then the documentation is buggy 8 | - If there is a bug in this project, then we can work together to fix it. 9 | 10 | There is a [list of known issues](https://fasterthanlight.net/#known-issues) on the website—if anything else comes up, though, please do [open an issue](https://github.com/weebney/tachyon/issues/) in the [issue tracker](https://github.com/weebney/tachyon/issues/) or open a pull request. 11 | 12 | Tachyon has only a few code contribution rules to keep the project's codebase growing at a sustainable rate: 13 | 14 | - Please squash your commits before submitting a pull request. 15 | - Large pull requests should be split into multiple smaller pull requests where possible. -------------------------------------------------------------------------------- /docs/.hugo_build.lock: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cowtoolz/tachyon/31f680519c2aace7f19aeb37e7e45eadb9ac746e/docs/.hugo_build.lock -------------------------------------------------------------------------------- /docs/archetypes/default.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: "{{ replace .Name "-" " " | title }}" 3 | date: {{ .Date }} 4 | draft: true 5 | --- 6 | 7 | -------------------------------------------------------------------------------- /docs/cms/copy.js: -------------------------------------------------------------------------------- 1 | const codeBlock = document.getElementById("codeBlock") 2 | const copyButton = document.getElementById("copier") 3 | 4 | codeBlock.innerText = ''; 5 | 6 | function sleep(ms) { 7 | return new Promise(resolve => setTimeout(resolve, ms)); 8 | } 9 | 10 | function toClipboard() { 11 | navigator.clipboard.writeText(codeBlock.innerText); 12 | copier.innerHTML = "Copied!"; 13 | sleep(1000).then(() => { 14 | copier.innerHTML = "Click me to copy!"; 15 | }) 16 | } 17 | 18 | copyButton.addEventListener("click", toClipboard) 19 | -------------------------------------------------------------------------------- /docs/config.toml: -------------------------------------------------------------------------------- 1 | baseURL = 'https://fasterthanlight.net/' 2 | languageCode = 'en-us' 3 | title = 'Tachon' 4 | theme = 'digitalgarden' 5 | 6 | [markup.goldmark.renderer] 7 | unsafe= true -------------------------------------------------------------------------------- /docs/content/_index.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: "Tachyon" 3 | date: 2022-11-07T14:15:24-05:00 4 | draft: false 5 | --- 6 | 7 | 8 | 9 | 10 | 11 | 12 |  13 | 14 |
19 | 20 | [GitHub](https://github.com/weebney/tachyon/) · [简体中文](https://github.com/weebney/tachyon/blob/main/localized/readme.zh-CN.md) · [繁體中文](https://github.com/weebney/tachyon/blob/main/localized/readme.zh-TW.md) · [한국어](https://github.com/weebney/tachyon/blob/main/localized/readme.ko.md) 21 | 22 |
23 | 24 |
14 |
15 |
14 |
15 |
14 |
15 |
14 |
15 |
14 |
15 | Google Tag Manager is one of the best ways to add Tachyon to your website. It’s easy to use and allows you to add Tachyon to any website, even if you don’t have access to the code.
<script>
tags above<script>
tags you copied into the Tag Configuration “HTML” fieldSelf-hosting Tachyon is easy. Grab the latest release from the GitHub repository (it’s recommended you use tachyon.min.js
) and upload it to your server. Link the script somewhere in your HTML with <script src="..." type="module" defer>
and you’re good to go!
⚠ Please keep in mind that your <script>
tag must include type="module"
and defer
Shopify makes it easy to add Tachyon.
<script>
tags abovetheme.liquid
file in the file navigator on the left<head>
at the top of the file<script>
tags you copied on the line just below the line that reads <head>
⚠ If you change to a new theme, you will need to repeat these steps!
Squarespace makes it very easy to add Tachyon.
<script>
tags above<script>
tags you copied into the “Header” fieldWebflow makes it very easy to add Tachyon.
<script>
tags above<script>
tags you copied into the Head Code textboxWix makes it very easy to add Tachyon.
<script>
tags above<script>
tags you copied earlier into the “Paste the code snippet here” fieldAdding Tachyon to WordPress is easier than ever. Just follow these steps:
tachyon.zip
file you downloaded earlierTachyon is a byte-sized script that improves the user experience of your website by making navigation between pages significantly quicker.
On average, Tachyon could benefit your site with:
🤯 Instant feeling page loads
🤑 2% increase in conversion rate 1
😍 8% increase in customer satisfaction 2
🧐 5% increase in page views 2
😳 0.0003% increase in page weight 3
🤓 Developed by an industry leading growth hacker
🤩 Completely set up in one minute or less
Tachyon uses browsers’ built in features to markedly improve the speed of your website, resulting in a better user experience and potentially even significantly more conversions. 4 5 6 7 8
To test if Tachyon would’ve helped, 5 | No! Yes! 6 | (Saved )Remove 7 | cursor!
In the above demo, “saved” refers to additional time that would have been spent loading the page without Tachyon.
<script src="https://unpkg.com/tachyonjs@1.0.0/tachyon.min.js" integrity="sha384-heQJwFpZJtRgNigl/AIBiJDMVXglsdy1NzLiOjjc9yo8qLqSiBFPKCzVRiSKHNa4" type="module" crossorigin defer></script>
Deploying Tachyon to your site is extremely easy. 9 | For most people the steps will look like this:
Copy the <script>
tags above.
Add them between your website’s <head></head>
tags.
That’s it! Your website will now feel blazingly fast 🔥🔥
For more advanced users, Tachyon can be downloaded via GitHub for use without a CDN; it is also available via npm as tachyonjs.
Provided below are instructions for adding Tachyon to popular content management systems, website builders, and e-commerce platforms.
Tachyon leverages features built into browsers through vanilla javascript; it generates <link rel="prefetch" href="...">
tags to preload content when a user hovers their cursor on any <a href="..."></a>
tag for more than 50ms (by default).
Basically, this tells the browser to start downloading the page the user is about to visit before they actually click on the link. This means that when the user clicks on the link, the page is already downloaded and ready to be displayed. This results in a significantly faster page load time.
Tachyon works on mobile devices as well by checking for a tap event instead of a hover event.
Tachyon’s is free-and-open-source software (source available on GitHub), licensed under the MIT License.
Tachyon is completely safe to use on your website. It does not contain any tracking, analytics, or other malicious code- it’s completely open-source and plenty of sites trust Tachyon in production right now.
Tachyon leverages unpkg, a CDN that is trusted by many popular websites and powered by Cloudflare.
Subresource integrity is used to ensure that the script delivered to your users’ browsers hasn’t been tampered with.
The npm package (which is unpkg’s source for Tachyon) is exclusively published from one machine behind a wireguard bastion; the subresource integrity hash and minified script are computed locally and updated on the dev branch of the GitHub repository ahead of new versions being published to npm. All official Tachyon pages, this website and the GitHub repository, are hosted by GitHub.
By default, Tachyon will run on all <a href="...">
tags. When an end-user hovers their cursor over a link for more than 50ms, Tachyon will generate a <link rel="prefetch" href="...">
tag for the anchor’s href="..."
attribute. This will cause the browser to begin downloading the page content of href="..."
in the background, so when the user clicks through the link, the page is already being downloaded and ready to begin loading into frame.
When a user unhovers their cursor from a link, Tachyon will remove the <link rel="prefetch" href="...">
tag, canceling the download. This is done to prevent the browser from downloading content that the user may not click on and to avoid wasting bandwidth.
These prefetch requests are given extremely low priority; they will not interfere with the speed of other requests.
Tachyon could be considered an alternative to projects like instant.page or quicklink which offer a similar feature set. That being said, Tachyon has some serious advantages compared to other similar projects.
Put simply, Tachyon improves a website’s speed significantly more than instant.page, uses significantly less bandwidth, and is 4.08x smaller.
Tachyon is simpler, more flexible, and better thought at its core out than any other alternative. It’s the best option in virtually all use cases where something like instant.page or quicklink could be used.
For one, Tachyon implements the prefetching behavior in a way that is significantly more efficient and less intrusive than other projects- it only preloads pages that are likely to be clicked, and it stops prefetching pages when the user’s cursor leaves the link. This means that Tachyon will not waste bandwidth on pages that the user may not click on, and it will not add nearly as large of a load to your server as alternatives.
Alternatives include a ridiculous amount of code for the extremely simple core functionality that prefetching scripts offer. Tachyon is built with simplicity at its core, and it allows everyone to reap the massive benefits in performance, extensibility, maintainability, security, and ease of use.
It’s not like Tachyon offers less features than other projects, either- it’s just that Tachyon’s features are implemented in a way that is more efficient from a code perspective than other projects. It supports mobile with no configuration, implements whitelisting, blacklisting, custom timing, and same origin restriction in a way that is much more efficient than other projects, and it makes these features arguably easier to use. If you need some hyper-specific feature, Tachyon may not be the best option for you- for everyone else, Tachyon is undoubtedly the best option.
The web is extremely bloated. In a perfect world, we would all do our part to fix this- I personally try to build things as leanly as possible, but unfortunately the addiction of the web to bloat has only continued growing. As a consultant, I’ve seen first-hand how this bloat negatively impacts the user experience and conversion rates of websites. As much as I wish it were true, I don’t have the time, resources, or bargaining power to have my clients completely re-engineer their websites. For this reason I created a script to function as a quick-and-easy patch for the bloat problem to simplify my job of delivering on growth goals for clients; Tachyon is my attempt to fix not the bloat problem, but the key symptom of the bloat problem: slow websites.
As I have taken this concept and fleshed it out for public use, I have focused on simplicity in two areas:
Tachyon should be simple to use by everyone. 10 | I want to make it as easy as possible for anyone, regardless of their technical prowess, to use Tachyon; everything from how Tachyon’s features are implemented to how this website documents Tachyon’s usage should be as easy to utilize as possible.
Tachyon’s codebase should be as simple as possible. 11 | Simplicity is baked into Tachyon’s design. Any person with a basic understanding of JavaScript should be able to understand Tachyon’s codebase in a matter of minutes. This simplicity serves multiple functions: it makes Tachyon highly performant, easy to use, easy to maintain and extend by both myself and other developers, and it makes Tachyon extremely easy to audit and verify that it is safe to use on your website.
Tachyon gets some fair questions from time to time, mostly due to misunderstanding Tachyon’s purpose and functionality.
In general, the developers currently working on any given website aren’t really responsible for the majority of the bloat simply due to the fact that they likely didn’t build it or just have better things to work on. Technical debt is an inevitable product of any piece of software’s history, and the developers working on it are often just trying to keep the site running. I built Tachyon first-and-foremost for myself; my job as a consultant is to help a client get the most out what they have as quickly as possible without burdening their internal teams, and Tachyon is a tool that helps me do that. It’s not a magic bullet that will fix all of their problems, but it’s a tool that can help them get more out of their existing website without spending precious time trying to undo years of spaghetti code or migrate to some slick new technology.
If you’re building a new website, you should absolutely be building it as leanly as possible. If you’re working on an existing website, you should absolutely be working to reduce its bloat. When neither of those are viable, i.e. a lot of the time, Tachyon is here for you.
Prefetching doesn’t expose an end user to code execution (including tracking), as code isn’t even downloaded until the user navigates to the page. The only risk is that the user’s browser will download content that they don’t end up using, but this is a risk that is inherent to the web and is not unique to Tachyon. In the exceptionally rare case that a user’s threat model includes third-parties linked to by websites they use, it’s their own responsibility to modify their browser for privacy; they will usually have already disabled prefetching in their browser whether they know it or not because many privacy extensions and privacy focused browsers do this by default.
Tachyon allows you to fine tune the script to your site’s needs with a few simple properties. The vast majority of Tachyon users will not need to change these, but they are available for those who wish to do so.
Tachyon’s configuration features are toggled on with data-tachyon-*
attributes.
If you’re able to determine that the 50ms default timing is not optimal for your site, you can change it by adding the data-tachyon-timer
attribute to website’s <body>
tag. This attribute takes an integer (in milliseconds) that will alter the script’s behavior as such, i.e. if you want to set the timing to 100ms, your body tag will look like <body
data-tachyon-timer="100"
>
By default, Tachyon will prefetch content from any domain. If you want Tachyon to only prefetch content from the same domain, you can add data-tachyon-same-origin
to the <body>
tag. A full implementation of this would look like <body
data-tachyon-same-origin
>
.
If you want Tachyon to ignore certain links, add data-tachyon
to the <a>
tag. The blacklist is the default behavior of Tachyon, so you don’t need to do anything to enable it, just flag the <a>
tag with the data-tachyon
attribute.
In the following example the first <a>
tag will be ignored by Tachyon and will not be prefetched, but the second <a>
tag will be prefetched as it does not have the data-tachyon
attribute and is therefore not on the blacklist.
<body>
<a href="https://example.com"
data-tachyon
>Blacklisted!</a>
<a href="https://example.com">I'll prefetch!</a>
</body>
To enable whitelist mode, add data-tachyon-whitelist
to the page’s <body>
tag. Tachyon’s whitelist works in the exact opposite way of the blacklist. In whitelist mode, Tachyon will only run on <a>
tags that have the data-tachyon
attribute.
In the following example the second <a>
tag will be ignored by Tachyon and will not be prefetched, but the first <a>
tag will be prefetched as it has the data-tachyon
attribute and is therefore on the whitelist.
<body
data-tachyon-whitelist
>
<a href="https://example.com"
data-tachyon
>I'll prefetch!</a>
<a href="https://example.com">Not on the list! Won't prefetch!</a>
</body>
Many privacy and ad-blocking extensions disable the functionality that Tachyon relies on. Please keep this in mind as you test your site’s implementation of the script.
Tachyon does not work with single page applications/client-side routing. It shouldn’t break anything, but it won’t do anything either- this is because Tachyon relies on native prefetching functionality, which doesn’t work with single page applications because client side routers hijack <a>
tags.
Prefetching is supported but incorrectly implemented in Firefox- it will only work as intended if the prefetched page is fully downloaded and cached. This is a known issue (and has been for years) that will likely be fixed in a future release of Firefox; the issue had its severity updated as recently as October 2022.
Prefetching is currently disabled by default on both desktop and mobile versions of Safari. It is unclear if this behavior will change in the future.
Please report any bugs or issues you come across in the issue tracker of the GitHub repository.
Zuzana Padychova. (2017, April 7). How Page Load Time Affects Conversion Rates: 12 Case Studies. Hubspot.com. ↩︎
Dooley, R. (2012, December 4). Don’t Let a Slow Website Kill Your Bottom Line. Forbes. 12 | ↩︎ ↩︎
Teague, J. (2021, December 1). The 2021 Web Almanac: Page Weight (B. Pollard, Ed.). Web Almanac by HTTP Archive. ↩︎
How Website Performance Affects Conversion Rates | Cloudflare. (n.d.). Cloudflare. Retrieved November 9, 2022 13 | ↩︎
The State of Online Retail Performance. (2017). Akamai. ↩︎
Milliseconds Make Millions. (2020). Deloitte Digital. 14 | ↩︎
Jeffers, J. (2019, August 20). Site Speed is (Still) Impacting Your Conversion Rate. Portent. ↩︎
Breibon, A. (2018, June 27). How Does Page Speed Really Affect your Conversions? AB Tasty. ↩︎
{{ .Date.Format "January 2, 2006" }}
9 | {{ end }} 10 | 11 | {{ .Content }} 12 |Select a post to read
32 | Planted {{ $date }}
48 | {{ if ne $lastmod $date}}
49 |
Pruned {{ .Lastmod.Format "January 2, 2006" }}
50 | {{ end }}
51 |
28 | View Project →
29 | 30 | {{ if and (eq $index 0) $description }} 31 |{{ .Date.Format "January 2, 2006" }}
16 | {{ end }} 17 | 18 | {{ with .Params.images }} 19 | {{- range first 1 . }} 20 |{{ .Description }}
8 |{{ .description }}
26 | {{ end }} 27 | {{ if .tag }} 28 |30 | #{{ 31 | .tag }}
32 | {{ end }} 33 |40 | | Tachyon | 41 |Instant.Page | 42 |Quicklink | 43 |Turbolinks | 44 |
---|---|---|---|---|
크기 | 47 |738 b | 48 |3.14 kb (4.3배 더 큼) |
49 | 60.1 kb (83배 더 큼) |
50 | 111 kb (153배 더 큼) |
51 |
대역폭 오버헤드 |
54 | 가장 낮음 | 55 |낮음 | 56 |가장 높음 | 57 |높음 | 58 |
사전 렌더링 (가장 빠른 로드) |
61 | ✅ | 62 |❌ | 63 |✅ | 64 |❌ | 65 |
추가 코드 불필요 |
69 | ✅ | 70 |✅ | 71 |❌ | 72 |❌ | 73 |
모든 링크에서 작동함 |
76 | ✅ | 77 |❌ | 78 |❌ | 79 |❌ | 80 |
화이트리스트 & 블랙리스트 |
83 | ✅ | 84 |❌ | 85 |❌ | 86 |❌ | 87 |
41 | | Tachyon | 42 |Instant.Page | 43 |Quicklink | 44 |Turbolinks | 45 |
---|---|---|---|---|
大小 | 48 |738 b | 49 |3.14 kb (大约为Tachyon的4.3倍) |
50 | 60.1 kb (大约为Tachyon的83倍) |
51 | 111 kb (大约为Tachyon的153倍) |
52 |
带宽 开销 |
55 | 最低 | 56 |低 | 57 |最高 | 58 |高 | 59 |
预渲染 (最快加载) |
62 | ✅ | 63 |❌ | 64 |✅ | 65 |❌ | 66 |
不需要额外 的代码 |
70 | ✅ | 71 |✅ | 72 |❌ | 73 |❌ | 74 |
适用于 所有链接 |
77 | ✅ | 78 |❌ | 79 |❌ | 80 |❌ | 81 |
白名单和 黑名单 |
84 | ✅ | 85 |❌ | 86 |❌ | 87 |❌ | 88 |
42 | | Tachyon | 43 |Instant.Page | 44 |Quicklink | 45 |Turbolinks | 46 |
---|---|---|---|---|
大小 | 49 |738 b | 50 |3.14 kb (大約是Tachyon的4.3倍) |
51 | 60.1 kb (大約是Tachyon的83倍) |
52 | 111 kb (大約是Tachyon的153倍) |
53 |
帶寬開銷 | 56 |最低 | 57 |低 | 58 |最高 | 59 |高 | 60 |
預渲染 (最快的加載速度) |
63 | ✅ | 64 |❌ | 65 |✅ | 66 |❌ | 67 |
無需額外 代碼 |
71 | ✅ | 72 |✅ | 73 |❌ | 74 |❌ | 75 |
在所有 鏈接上工作 |
78 | ✅ | 79 |❌ | 80 |❌ | 81 |❌ | 82 |
白名單和 黑名單 |
85 | ✅ | 86 |❌ | 87 |❌ | 88 |❌ | 89 |
47 | | Tachyon | 48 |Instant.Page | 49 |Quicklink | 50 |Turbolinks | 51 |
---|---|---|---|---|
Size | 54 |738 b | 55 |3.14 kb (4.3x larger) |
56 | 60.1 kb (83x larger) |
57 | 111 kb (153x larger) |
58 |
Bandwidth Overhead |
61 | Lowest | 62 |Low | 63 |Highest | 64 |High | 65 |
Prerendering (Fastest Loads) |
68 | ✅ | 69 |❌ | 70 |✅ | 71 |❌ | 72 |
No Addl. Code Required |
76 | ✅ | 77 |✅ | 78 |❌ | 79 |❌ | 80 |
Works on ALL links |
83 | ✅ | 84 |❌ | 85 |❌ | 86 |❌ | 87 |
Whitelist & Blacklist |
90 | ✅ | 91 |❌ | 92 |❌ | 93 |❌ | 94 |
Click "Append" to append an item to the end of the list:
22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 |Same-Origin: Disabled
41 |Whitelist: Disabled
42 |Blacklist: Enabled
43 |Click "Append" to append an item to the end of the list:
23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 |Same-Origin: Enabled
42 |Whitelist: Disabled
43 |Blacklist: Enabled
44 |Click "Append" to append an item to the end of the list:
22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 |Same-Origin: Enabled
41 |Whitelist: Enabled
42 |Blacklist: Disabled
43 |Click "Append" to append an item to the end of the list:
23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 |Same-Origin: Disabled
42 |Whitelist: Enabled
43 |Blacklist: Disabled
44 |