Skip to content

Instantly share code, notes, and snippets.

View deanhume's full-sized avatar
🎮
Gaming

Dean deanhume

🎮
Gaming
View GitHub Profile
@deanhume
deanhume / binarysearch.js
Last active February 16, 2016 15:18
A simple binary search function
function binarySearch(searchValue) {
'use strict';
var minIndex = 0;
var maxIndex = sortedArray.length - 1;
var currentIndex;
var currentElement;
while (minIndex <= maxIndex) {
currentIndex = (minIndex + maxIndex) / 2 | 0;
@deanhume
deanhume / service-worker-offline-page.js
Last active February 14, 2016 20:39
Return an offline page using Service Worker
this.addEventListener('fetch', event => {
// request.mode = navigate isn't supported in all browsers
// so include a check for Accept: text/html header.
if (event.request.mode === 'navigate' || (event.request.method === 'GET' && event.request.headers.get('accept').includes('text/html'))) {
event.respondWith(
fetch(event.request.url).catch(error => {
// Return the offline page
return caches.match(offlineUrl);
})
);
@deanhume
deanhume / service-worker-add-offline-page.js
Last active May 3, 2018 07:43
A Service Worker that adds an offline page to cache
'use strict';
var cacheVersion = 1;
var currentCache = {
offline: 'offline-cache' + cacheVersion
};
const offlineUrl = 'offline-page.html';
this.addEventListener('install', event => {
event.waitUntil(
@deanhume
deanhume / example-html.html
Created December 15, 2015 17:46
Example HTML file
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Service Worker Toolbox</title>
</head>
<body>
<!-- Images -->
<img src="/images/contact.svg" height="80" width="80" />
<img src="/images/info.svg" height="80" width="80" />
@deanhume
deanhume / sw-toolbox-boilerplate.js
Last active February 14, 2016 20:39
Service Worker Toolbox Boilerplate
(global => {
'use strict';
// Load the sw-toolbox library.
importScripts('/bower_components/sw-toolbox/sw-toolbox.js');
// Ensure that our service worker takes control of the page as soon as possible.
global.addEventListener('install', event => event.waitUntil(global.skipWaiting()));
global.addEventListener('activate', event => event.waitUntil(global.clients.claim()));
})(self);
@deanhume
deanhume / client-hints-service-worker.js
Last active September 10, 2017 11:03
Service Worker & HTTP Client Hints
"use strict";
// Listen to fetch events
self.addEventListener('fetch', function(event) {
// Check if the image is a jpeg
if (/\.jpg$|.png$/.test(event.request.url)) {
// Inspect the accept header for WebP support
var supportsWebp = false;
@deanhume
deanhume / service-worker-register.js
Last active June 18, 2024 14:26
Register a Service Worker
<script>
// Register the service worker
if ('serviceWorker' in navigator) {
navigator.serviceWorker.register('/service-worker.js').then(function(registration) {
// Registration was successful
console.log('ServiceWorker registration successful with scope: ', registration.scope);
}).catch(function(err) {
// registration failed :(
console.log('ServiceWorker registration failed: ', err);
});
@deanhume
deanhume / service-worker-dynamic.js
Created October 23, 2015 14:52
Dynamic Responsive images using Client Hints and Service Worker
// Listen to fetch events
self.addEventListener('fetch', function(event) {
// Clone the request
var req = event.request.clone();
// Check if the image is a jpeg
if (/\.jpg$/.test(event.request.url)) {
// Check the headers
@deanhume
deanhume / knowledge-graph.js
Last active February 14, 2016 20:39
Knowledge Graph for Dean Hume
<script type="application/ld+json" async>
{
"@context": "http://schema.org",
"@type": "Person",
"name": "Dean Hume",
"url": "http://www.deanhume.com",
"image" : "http://d1cf5d4f6459eaab586f-791099b254e564f039f4f8eec59a966d.r53.cf3.rackcdn.com/logo.png",
"sameAs" : [
"https://twitter.com/DeanoHume",
"https://uk.linkedin.com/in/deanhume",
@deanhume
deanhume / fetch-api-post.js
Created August 19, 2015 10:48
A simple POST request using the fetch API
fetch(url, {
method: 'POST',
headers: {
'auth': '1234'
},
body: JSON.stringify({
name: 'dean',
login: 'dean',
})
})