mirror of
https://github.com/publiclab/image-sequencer.git
synced 2025-12-12 03:10:03 +01:00
remove extra clear cache button and isolate cache code (#609)
* remove extra clear cache button * isolate cache code * changes
This commit is contained in:
@@ -200,42 +200,8 @@ window.onload = function() {
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
if ('serviceWorker' in navigator) {
|
setupCache();
|
||||||
navigator.serviceWorker.register('sw.js', { scope: '/examples/' })
|
|
||||||
.then(function(registration) {
|
|
||||||
const installingWorker = registration.installing;
|
|
||||||
installingWorker.onstatechange = () => {
|
|
||||||
console.log(installingWorker)
|
|
||||||
if (installingWorker.state === 'installed') {
|
|
||||||
location.reload();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
console.log('Registration successful, scope is:', registration.scope);
|
|
||||||
})
|
|
||||||
.catch(function(error) {
|
|
||||||
console.log('Service worker registration failed, error:', error);
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
if ('serviceWorker' in navigator) {
|
|
||||||
caches.keys().then(function(cacheNames) {
|
|
||||||
cacheNames.forEach(function(cacheName) {
|
|
||||||
$("#clear-cache").append(" " + cacheName);
|
|
||||||
});
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
$("#clear-cache").click(function() {
|
|
||||||
if ('serviceWorker' in navigator) {
|
|
||||||
caches.keys().then(function(cacheNames) {
|
|
||||||
cacheNames.forEach(function(cacheName) {
|
|
||||||
caches.delete(cacheName);
|
|
||||||
});
|
|
||||||
});
|
|
||||||
}
|
|
||||||
location.reload();
|
|
||||||
});
|
|
||||||
|
|
||||||
function updatePreviews(src) {
|
function updatePreviews(src) {
|
||||||
$('#addStep img').remove();
|
$('#addStep img').remove();
|
||||||
|
|
||||||
|
|||||||
@@ -21,6 +21,7 @@
|
|||||||
<script src="lib/defaultHtmlStepUi.js" charset="utf-8"></script>
|
<script src="lib/defaultHtmlStepUi.js" charset="utf-8"></script>
|
||||||
<script src="lib/defaultHtmlSequencerUi.js" charset="utf-8"></script>
|
<script src="lib/defaultHtmlSequencerUi.js" charset="utf-8"></script>
|
||||||
<script src="lib/intermediateHtmlStepUi.js" charset="utf-8"></script>
|
<script src="lib/intermediateHtmlStepUi.js" charset="utf-8"></script>
|
||||||
|
<script src="lib/cache.js" charset="utf-8"></script>
|
||||||
<script src="demo.js" charset="utf-8"></script>
|
<script src="demo.js" charset="utf-8"></script>
|
||||||
<!-- for crop module: -->
|
<!-- for crop module: -->
|
||||||
<script src="../node_modules/imgareaselect/jquery.imgareaselect.dev.js"></script>
|
<script src="../node_modules/imgareaselect/jquery.imgareaselect.dev.js"></script>
|
||||||
@@ -185,12 +186,6 @@
|
|||||||
<button><i class="fa fa-arrow-circle-o-up"></i></button>
|
<button><i class="fa fa-arrow-circle-o-up"></i></button>
|
||||||
</form>
|
</form>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<footer>
|
|
||||||
<hr style="margin:20px;"><center><a class="color:grey;" id="clear-cache">Clear offline cache</a></center>
|
|
||||||
</footer>
|
|
||||||
|
|
||||||
<script type="text/javascript">
|
<script type="text/javascript">
|
||||||
$(function() {
|
$(function() {
|
||||||
var sequencer;
|
var sequencer;
|
||||||
|
|||||||
37
examples/lib/cache.js
Normal file
37
examples/lib/cache.js
Normal file
@@ -0,0 +1,37 @@
|
|||||||
|
var setupCache = function() {
|
||||||
|
if ('serviceWorker' in navigator) {
|
||||||
|
navigator.serviceWorker.register('sw.js', { scope: '/examples/' })
|
||||||
|
.then(function(registration) {
|
||||||
|
const installingWorker = registration.installing;
|
||||||
|
installingWorker.onstatechange = () => {
|
||||||
|
console.log(installingWorker)
|
||||||
|
if (installingWorker.state === 'installed') {
|
||||||
|
location.reload();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
console.log('Registration successful, scope is:', registration.scope);
|
||||||
|
})
|
||||||
|
.catch(function(error) {
|
||||||
|
console.log('Service worker registration failed, error:', error);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
if ('serviceWorker' in navigator) {
|
||||||
|
caches.keys().then(function(cacheNames) {
|
||||||
|
cacheNames.forEach(function(cacheName) {
|
||||||
|
$("#clear-cache").append(" " + cacheName);
|
||||||
|
});
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
$("#clear-cache").click(function() {
|
||||||
|
if ('serviceWorker' in navigator) {
|
||||||
|
caches.keys().then(function(cacheNames) {
|
||||||
|
cacheNames.forEach(function(cacheName) {
|
||||||
|
caches.delete(cacheName);
|
||||||
|
});
|
||||||
|
});
|
||||||
|
}
|
||||||
|
location.reload();
|
||||||
|
});
|
||||||
|
}
|
||||||
35
examples/lib/sw.js
Normal file
35
examples/lib/sw.js
Normal file
@@ -0,0 +1,35 @@
|
|||||||
|
const staticCacheName = 'image-sequencer-static-v3';
|
||||||
|
|
||||||
|
self.addEventListener('install', event => {
|
||||||
|
console.log('Attempting to install service worker');
|
||||||
|
});
|
||||||
|
|
||||||
|
self.addEventListener('activate', function(e) {
|
||||||
|
console.log('[ServiceWorker] Activate');
|
||||||
|
e.waitUntil(
|
||||||
|
caches.keys().then(function(cacheNames) {
|
||||||
|
return Promise.all(
|
||||||
|
cacheNames.filter(function(cacheName){
|
||||||
|
return cacheName.startsWith('image-sequencer-') &&
|
||||||
|
cacheName != staticCacheName;
|
||||||
|
}).map(function(cacheName){
|
||||||
|
return caches.delete(cacheName);
|
||||||
|
})
|
||||||
|
);
|
||||||
|
})
|
||||||
|
);
|
||||||
|
});
|
||||||
|
|
||||||
|
self.addEventListener('fetch', function(event) {
|
||||||
|
event.respondWith(
|
||||||
|
caches.open(staticCacheName).then(function(cache) {
|
||||||
|
return cache.match(event.request).then(function (response) {
|
||||||
|
return response || fetch(event.request).then(function(response) {
|
||||||
|
if(event.request.method == "GET")
|
||||||
|
cache.put(event.request, response.clone());
|
||||||
|
return response;
|
||||||
|
});
|
||||||
|
});
|
||||||
|
})
|
||||||
|
);
|
||||||
|
});
|
||||||
Reference in New Issue
Block a user