-
-
Notifications
You must be signed in to change notification settings - Fork 1.3k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Offline support with service worker #978
Open
xtuc
wants to merge
22
commits into
babel:main
Choose a base branch
from
xtuc:master
base: main
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
+8,261
−1
Open
Changes from 1 commit
Commits
Show all changes
22 commits
Select commit
Hold shift + click to select a range
85a014b
feat: support offline with service worker
xtuc 1bd6f2d
refactor(offline): use sw-toolbox
xtuc ef6d78b
fix(sw): removed pre-cached CSS
xtuc 2d6207d
feat(sw): add external cache origins
xtuc 2936fad
feat(sw): add cache version
xtuc 53458ba
feat(sw): offline indicator
xtuc 49ca43f
Merge remote-tracking branch 'upstream/master'
xtuc 39b7233
fix(sw): remove Algolia response cache
xtuc 3e0ba2e
fix(sw): limit cache and cache only doc
xtuc e8ff8b1
feat(sw): separe content and cdn cache
xtuc c79524c
fix(sw): update cache strategies
xtuc 1e75370
feat(sw): improved offline indicator
xtuc ae14615
fix(sw): remove site precaching
xtuc 5ce2a31
Merge remote-tracking branch 'upstream/master'
xtuc ac3f4dc
lint: use single quotes
xtuc 25e916d
Update service-worker.js
xtuc c8f206f
Resolved conflicts
thenamankumar d32e376
Imported sw-toolbox from unpkg
thenamankumar 687842e
Added Offline.md page
thenamankumar 7c90808
Made Cache Pattern Network First
thenamankumar 6d557eb
Made multiple var declarations
thenamankumar 18d2580
Removed sw-toolbox.js
thenamankumar File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -3,11 +3,15 @@ | |
|
||
importScripts('/scripts/sw-toolbox.js'); | ||
|
||
const VERSION = '{{ site.time }}'; | ||
var VERSION = '{{ site.time }}'; | ||
|
||
toolbox.cache.name = "Babel-Cache-" + VERSION; | ||
toolbox.cache.maxEntries = 150; | ||
toolbox.cache.maxAgeSeconds = 604800; | ||
var contentCacheOptions = { | ||
cache: { | ||
name: "Babel-Cache-" + VERSION, | ||
maxEntries: 150, | ||
maxAgeSeconds: 604800 | ||
} | ||
} | ||
|
||
var preCachedRessources = [ | ||
{% for page in site.pages %} | ||
|
@@ -17,7 +21,7 @@ var preCachedRessources = [ | |
|
||
toolbox.precache(preCachedRessources); | ||
|
||
toolbox.router.get('/*', toolbox.cacheFirst); | ||
toolbox.router.get('/*', toolbox.cacheFirst, { origin: "cdnjs.cloudflare.com" }); | ||
toolbox.router.get('/*', toolbox.cacheFirst, { origin: "cdn.jsdelivr.net" }); | ||
toolbox.router.get('/*', toolbox.cacheFirst, contentCacheOptions); | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
|
||
toolbox.router.get('/*', toolbox.cacheFirst, { origin: "cdnjs.cloudflare.com", name: "cdn" }); | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. this should be |
||
toolbox.router.get('/*', toolbox.cacheFirst, { origin: "cdn.jsdelivr.net", name: "cdn" }); | ||
toolbox.router.get('/*', toolbox.cacheFirst, { origin: "unpkg.com" }); // for repl |
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It'll be good to use a versioned cache name.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Also,
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yes, I will add cache versioning.
What do you think about a max age ? Like 7 days ?
I don't know if limiting entries is a good idea. I pre-cache already all pages.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
TL for sw-toolbox and sw-precache here. Great to see you using it :)
If you're going to set
maxEntries
to 20, it means that after the 21st entry is cached, the least-recently used entry would be automatically deleted. Unless you're storing a number of really large assets, I'd consider whether this is really that valuable. I don't think the Babel site would benefit from setting this all that much.I do think there's use in imposing a maxAgeSeconds age. @boopathi can probably comment to the length of time, but a week doesn't sound like a bad ballpark.