Skip to content

Commit 5f8992b

Browse files
committed
pwa caching
1 parent 7a2e30f commit 5f8992b

File tree

2 files changed

+58
-68
lines changed

2 files changed

+58
-68
lines changed

index.html

Lines changed: 34 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,6 @@
11
<!DOCTYPE html>
22
<html class="firstload">
33
<head>
4-
<meta http-equiv="cache-control" content="no-cache" />
5-
<meta http-equiv="expires" content="0" />
6-
<meta http-equiv="pragma" content="no-cache" />
74
<meta name="robots" content="noindex" />
85
<meta charset="utf-8" />
96
<meta name="google" content="notranslate" />
@@ -27,13 +24,13 @@
2724
<link rel="mask-icon" href="img_icons_safari-pinned-tab.svg" color="#5bbad5">
2825
<link rel="manifest" href="manifest.json" type="application/json" />
2926
<link rel="stylesheet" media="screen" href="https://fonts.googleapis.com/css?family=Open+Sans:300,400,600,700" />
30-
<link rel="stylesheet" type="text/css" media="screen" href="assets_styles_styles.css?v=0.287" />
31-
<link rel="stylesheet" type="text/css" media="screen" href="assets_styles_payments.css?v=0.287" />
32-
<link rel="stylesheet" type="text/css" media="screen" href="assets_styles_settings.css?v=0.287" />
33-
<link rel="stylesheet" type="text/css" media="screen" href="assets_styles_media_queries.css?v=0.287" />
34-
<link rel="stylesheet" type="text/css" media="screen" href="assets_styles_icons.css?v=0.287" />
35-
<link rel="stylesheet" type="text/css" media="screen" href="assets_styles_lightning.css?v=0.287" />
36-
<link rel="stylesheet" type="text/css" media="screen" href="assets_styles_themes_default.css?v=0.287" id="theme" />
27+
<link rel="stylesheet" type="text/css" media="screen" href="assets_styles_styles.css" />
28+
<link rel="stylesheet" type="text/css" media="screen" href="assets_styles_payments.css" />
29+
<link rel="stylesheet" type="text/css" media="screen" href="assets_styles_settings.css" />
30+
<link rel="stylesheet" type="text/css" media="screen" href="assets_styles_media_queries.css" />
31+
<link rel="stylesheet" type="text/css" media="screen" href="assets_styles_icons.css" />
32+
<link rel="stylesheet" type="text/css" media="screen" href="assets_styles_lightning.css" />
33+
<link rel="stylesheet" type="text/css" media="screen" href="assets_styles_themes_default.css" id="theme" />
3734
</head>
3835

3936
<body>
@@ -87,7 +84,7 @@ <h2 class="heading tl_page3">Settings</h2>
8784
<ul id="appsettings" class="settinglist applist listyle2">
8885
</ul>
8986
<div id="app_info">
90-
<p><span id="ua" data-version="0.287">PWA v0.287</span><br />
87+
<p><span id="ua" data-version="0.287">PWA v0.288</span><br />
9188
<a href="https://github.com/bitrequest/bitrequest.github.io/" target="_blank" class="exit">Source code</a><br />
9289
<a href="https://github.com/bitrequest/bitrequest.github.io/wiki" target="_blank" class="exit">About</a><br />
9390
<a href="https://www.bitrequest.io/privacy" target="_blank" class="exit">Privacy / Disclaimer</a><br />
@@ -225,31 +222,31 @@ <h2 class="tl_page4">Accept crypto anywhere</h2>
225222
<audio id="collect" type="audio/mpeg">
226223
<source src="assets_styles_sounds_collect.mp3">
227224
</audio>
228-
<script src="assets_js_lib_jquery.js?v=0.287"></script>
229-
<script src="assets_js_libraries.js?v=0.287"></script>
230-
<script src="assets_js_bitrequest_lang_en.js?v=0.287"></script>
231-
<script src="assets_js_bitrequest_lang_nl.js?v=0.287"></script>
232-
<script src="assets_js_bitrequest_lang_fr.js?v=0.287"></script>
233-
<script src="assets_js_bitrequest_lang_controller.js?v=0.287"></script>
234-
<script src="assets_js_lib_global_queries.js?v=0.287"></script>
235-
<script src="assets_js_bitrequest_config.js?v=0.287"></script>
236-
<script src="assets_js_bitrequest_assets.js?v=0.287"></script>
237-
<script src="assets_js_lib_sjcl.js?v=0.287"></script>
238-
<script src="assets_js_lib_crypto_utils.js?v=0.287"></script>
239-
<script src="assets_js_lib_xmr_utils.js?v=0.287"></script>
240-
<script src="assets_js_lib_bip39_utils.js?v=0.287"></script>
241-
<script src="assets_js_bitrequest_bip39.js?v=0.287"></script>
242-
<script src="assets_js_bitrequest_core.js?v=0.287"></script>
243-
<script src="assets_js_bitrequest_settings.js?v=0.287"></script>
244-
<script src="assets_js_bitrequest_rpcs.js?v=0.287"></script>
245-
<script src="assets_js_bitrequest_coin_settings.js?v=0.287"></script>
246-
<script src="assets_js_bitrequest_lightning.js?v=0.287"></script>
247-
<script src="assets_js_bitrequest_sockets.js?v=0.287"></script>
248-
<script src="assets_js_bitrequest_polling.js?v=0.287"></script>
249-
<script src="assets_js_bitrequest_ethl2.js?v=0.287"></script>
250-
<script src="assets_js_bitrequest_payments.js?v=0.287"></script>
251-
<script src="assets_js_bitrequest_fetchblocks.js?v=0.287"></script>
252-
<script src="assets_js_bitrequest_monitors.js?v=0.287"></script>
253-
<script src="assets_js_lib_gd_api.js?v=0.287"></script>
225+
<script src="assets_js_lib_jquery.js"></script>
226+
<script src="assets_js_libraries.js"></script>
227+
<script src="assets_js_bitrequest_lang_en.js"></script>
228+
<script src="assets_js_bitrequest_lang_nl.js"></script>
229+
<script src="assets_js_bitrequest_lang_fr.js"></script>
230+
<script src="assets_js_bitrequest_lang_controller.js"></script>
231+
<script src="assets_js_lib_global_queries.js"></script>
232+
<script src="assets_js_bitrequest_config.js"></script>
233+
<script src="assets_js_bitrequest_assets.js"></script>
234+
<script src="assets_js_lib_sjcl.js"></script>
235+
<script src="assets_js_lib_crypto_utils.js"></script>
236+
<script src="assets_js_lib_xmr_utils.js"></script>
237+
<script src="assets_js_lib_bip39_utils.js"></script>
238+
<script src="assets_js_bitrequest_bip39.js"></script>
239+
<script src="assets_js_bitrequest_core.js"></script>
240+
<script src="assets_js_bitrequest_settings.js"></script>
241+
<script src="assets_js_bitrequest_rpcs.js"></script>
242+
<script src="assets_js_bitrequest_coin_settings.js"></script>
243+
<script src="assets_js_bitrequest_lightning.js"></script>
244+
<script src="assets_js_bitrequest_sockets.js"></script>
245+
<script src="assets_js_bitrequest_polling.js"></script>
246+
<script src="assets_js_bitrequest_ethl2.js"></script>
247+
<script src="assets_js_bitrequest_payments.js"></script>
248+
<script src="assets_js_bitrequest_fetchblocks.js"></script>
249+
<script src="assets_js_bitrequest_monitors.js"></script>
250+
<script src="assets_js_lib_gd_api.js"></script>
254251
</body>
255252
</html>

serviceworker.js

Lines changed: 24 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -1,69 +1,62 @@
1-
const CACHE = "bitrequest-page";
2-
1+
const VERSION = "v0.288";
2+
const CACHE = "bitrequest-page-" + VERSION;
33
const offlineFallbackPage = "index.html";
44

5-
// Install stage sets up the offline page in the cache and opens a new cache
5+
// Install: cache core assets with new version
66
self.addEventListener("install", function(event) {
7-
console.log("Install Event processing");
87
event.waitUntil(
98
caches.open(CACHE).then(function(cache) {
10-
console.log("Cached offline page during install");
119
return cache.add(offlineFallbackPage);
1210
})
1311
);
12+
self.skipWaiting(); // activate immediately
1413
});
1514

16-
// If any fetch fails, it will show the offline page.
15+
// Activate: delete old versioned caches
16+
self.addEventListener("activate", function(event) {
17+
event.waitUntil(
18+
caches.keys().then(function(keys) {
19+
return Promise.all(
20+
keys.filter(function(key) {
21+
return key.startsWith("bitrequest-page-") && key !== CACHE;
22+
}).map(function(key) {
23+
return caches.delete(key);
24+
})
25+
);
26+
})
27+
);
28+
self.clients.claim(); // take control of open tabs
29+
});
30+
31+
// Fetch: try network first, fall back to cache for offline
1732
self.addEventListener("fetch", function(event) {
1833
if (event.request.method !== "GET") return;
1934

20-
// --- IMAGE CACHING LOGIC ---
2135
if (event.request.destination === "image") {
2236
event.respondWith(
23-
// CORRECTED: Use the 'CACHE' variable you defined.
24-
caches.open(CACHE).then(cache => {
25-
// 1. Check if the image is in our cache
26-
return cache.match(event.request).then(cachedResponse => {
27-
// 2. If it's in the cache, return it immediately
37+
caches.open(CACHE).then(function(cache) {
38+
return cache.match(event.request).then(function(cachedResponse) {
2839
if (cachedResponse) {
2940
return cachedResponse;
3041
}
31-
32-
// 3. If not, fetch it from the network
33-
return fetch(event.request).then(networkResponse => {
34-
// 4. And store a copy in the cache for next time
42+
return fetch(event.request).then(function(networkResponse) {
3543
cache.put(event.request, networkResponse.clone());
3644
return networkResponse;
3745
});
3846
});
3947
})
4048
);
41-
// Important: Return here to stop the rest of the function from running for images
4249
return;
4350
}
4451

45-
// --- OFFLINE FALLBACK LOGIC for other requests ---
4652
event.respondWith(
4753
fetch(event.request).catch(function(error) {
48-
// The following validates that the request was for a navigation to a new document
4954
if (event.request.destination !== "document" || event.request.mode !== "navigate") {
5055
return;
5156
}
52-
console.error("Error", "Network request Failed. Serving offline page " + error);
5357
return caches.open(CACHE).then(function(cache) {
5458
return cache.match(offlineFallbackPage);
5559
});
5660
})
5761
);
58-
});
59-
60-
// This is an event that can be fired from your page to tell the SW to update the offline page
61-
self.addEventListener("refreshOffline", function() {
62-
const offlinePageRequest = new Request(offlineFallbackPage);
63-
return fetch(offlineFallbackPage).then(function(response) {
64-
return caches.open(CACHE).then(function(cache) {
65-
console.log("Offline page updated from refreshOffline event: " + response.url);
66-
return cache.put(offlinePageRequest, response);
67-
});
68-
});
6962
});

0 commit comments

Comments
 (0)