Skip to content

Instantly share code, notes, and snippets.

View petebrowne's full-sized avatar

Pete Browne petebrowne

View GitHub Profile
function isHtmlRequest(request) {
return (
request.method === 'GET' &&
request.headers.get('accept').includes('text/html')
);
}
self.addEventListener('fetch', event => {
if (isHtmlRequest(event.request)) {
event.respondWith(
self.addEventListener('fetch', event => {
event.respondWith(
caches.match(event.request).then(response => {
return response || fetch(event.request);
})
);
});
var CACHE_VERSION = 1;
var CACHE_NAME = `example-4_${CACHE_VERSION}`;
var OFFLINE_URL = 'offline.html';
var CACHE_URLS = [
OFFLINE_URL
];
self.addEventListener('install', event => {
event.waitUntil(
caches.open(CACHE_NAME).then(cache => {
self.addEventListener('activate', event => {
event.waitUntil(
caches.keys().then(cacheNames => {
return Promise.all(
cacheNames.map(cacheName => {
if (cacheName !== CACHE_NAME) {
console.log('Deleting out of date cache:', cacheName);
return caches.delete(cacheName);
}
})
var CACHE_VERSION = 1;
var CACHE_NAME = `example-3_${CACHE_VERSION}`;
var CACHE_URLS = [
'site.css',
'site.js'
];
self.addEventListener('install', event => {
event.waitUntil(
caches.open(CACHE_NAME).then(cache => {
self.addEventListener('fetch', event => {
var response = new Response('This came from the service worker!');
event.respondWith(response);
// Default behavior - same as not using `respondWith`
// event.responseWith(fetch(event.request));
});
console.log(self);
self.addEventListener('install', event => {
console.log('installed!', event);
});
self.addEventListener('activate', event => {
console.log('activated!', event);
});
navigator.serviceWorker.register('service-worker.js').then(function(registration) {
console.log('registered!', registration)
});
@petebrowne
petebrowne / keybase.md
Created November 10, 2015 22:53
keybase.md

Keybase proof

I hereby claim:

  • I am petebrowne on github.
  • I am petebrowne (https://keybase.io/petebrowne) on keybase.
  • I have a public key whose fingerprint is 7DD0 A89C 06AD F4F6 CFC1 AB45 B26F 34F6 A3E8 52DB

To claim this, I am signing this object:

@petebrowne
petebrowne / bem.scss
Created March 5, 2015 17:35
BEM Mixins
// BEM mixins for laying out modules.
// Based on:
//
// https://medium.com/@marcmintel/pushing-bem-to-the-next-level-with-sass-3-4-5239d2371321
$element-separator: '__' !default;
$modifier-separator: '--' !default;
// Creates a "block" in a BEM module.
//