From dad9a93078bbdcab0934a3addf805edfc68e8e72 Mon Sep 17 00:00:00 2001 From: Jeremy Likness Date: Tue, 28 Jan 2020 10:23:02 -0800 Subject: [PATCH] moar slides, disable localhost pwa cache --- css/style.css | 27 +++++++++++++++++++++-- images/triad.png | Bin 0 -> 27189 bytes pwa.js | 38 +++++++++++++++++---------------- slides/080-why.html | 13 ++++++----- slides/090-embrace.html | 4 ++++ slides/100-javascript-new.html | 20 +++++++++++++++++ slides/110-variables.html | 19 +++++++++++++++++ slides/120-gosinta.html | 26 ++++++++++++++++++++++ 8 files changed, 122 insertions(+), 25 deletions(-) create mode 100644 images/triad.png create mode 100644 slides/090-embrace.html create mode 100644 slides/100-javascript-new.html create mode 100644 slides/110-variables.html create mode 100644 slides/120-gosinta.html diff --git a/css/style.css b/css/style.css index c68a96c..f79d921 100644 --- a/css/style.css +++ b/css/style.css @@ -4,6 +4,10 @@ body { font-size: 3vh; } +code { + font-size: 3vh; +} + br { clear: both; } @@ -63,8 +67,23 @@ slide-deck img.expandable:hover { max-height: 80vh; } +div.card { + margin: 0.5em; + padding: 1.0em; + float: left; + text-align: center; + border: solid 2px darkgreen; + background: lightcyan; + width: 18vw; + height: 12vh; +} + +div.card span { + height: 12vh; +} + @media only screen and (max-width: 800px) { - body { + body, code { font-size: 14px; } button, input { @@ -74,10 +93,13 @@ slide-deck img.expandable:hover { label > div, input { width: 90vw; } + div.card { + width: 80vw; + } } @media only screen and (max-width: 1200px) { - body { + body, code { font-size: 2vh; } button, input { @@ -123,6 +145,7 @@ img { .center { text-align: center; + vertical-align: middle; } slide-deck > div { diff --git a/images/triad.png b/images/triad.png new file mode 100644 index 0000000000000000000000000000000000000000..3b53d0b69f482b3f6a01115b97eeebd836e5c5a1 GIT binary patch literal 27189 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 literal 0 HcmV?d00001 diff --git a/pwa.js b/pwa.js index 6bd76b5..993002e 100644 --- a/pwa.js +++ b/pwa.js @@ -33,7 +33,7 @@ class Pwa { * Cache version * @type {number} */ - this.CACHE_VERSION = 1.0; + this.CACHE_VERSION = 1.2; /** * Pre-emptive files to cache * @type {string[]} @@ -181,24 +181,26 @@ class Pwa { this.scope.addEventListener('fetch', event => { event.respondWith( caches.open(this.CACHE_NAME).then(async cache => { - const response = await cache.match(event.request); - if (response) { - // found it, see if expired - const headers = response.headers.entries(); - let date = null; - for (let pair of headers) { - if (pair[0] === 'date') { - date = new Date(pair[1]); - break; + if (!event.request.url.startsWith("http://localhost")) { + const response = await cache.match(event.request); + if (response) { + // found it, see if expired + const headers = response.headers.entries(); + let date = null; + for (let pair of headers) { + if (pair[0] === 'date') { + date = new Date(pair[1]); + break; + } + } + if (!date) { + return response; + } + const age = parseInt(((new Date().getTime() - date.getTime()) / 1000).toString()); + const ttl = this.getTTL(event.request.url); + if (ttl === null || (ttl && age < ttl)) { + return response; } - } - if (!date) { - return response; - } - const age = parseInt(((new Date().getTime() - date.getTime()) / 1000).toString()); - const ttl = this.getTTL(event.request.url); - if (ttl === null || (ttl && age < ttl)) { - return response; } } // not found or expired, fresh request diff --git a/slides/080-why.html b/slides/080-why.html index 6376a81..051841f 100644 --- a/slides/080-why.html +++ b/slides/080-why.html @@ -1,8 +1,10 @@ Why Frameworks in the First Place?

Why Frameworks in the First Place?

-
    -
  • {{item}}
  • -
+
+
+ {{item}} +
+
\ No newline at end of file + +090-embrace \ No newline at end of file diff --git a/slides/090-embrace.html b/slides/090-embrace.html new file mode 100644 index 0000000..5bb37c1 --- /dev/null +++ b/slides/090-embrace.html @@ -0,0 +1,4 @@ +Embrace the Triad +

Embrace the Triad

+The triad: JavaScript, CSS3 and HTML5 +100-javascript-new \ No newline at end of file diff --git a/slides/100-javascript-new.html b/slides/100-javascript-new.html new file mode 100644 index 0000000..c4ffb41 --- /dev/null +++ b/slides/100-javascript-new.html @@ -0,0 +1,20 @@ +What's New with JavaScript? +

What's New with JavaScript?

+
+
+ {{item}} +
+
+ +110-variables diff --git a/slides/110-variables.html b/slides/110-variables.html new file mode 100644 index 0000000..b684920 --- /dev/null +++ b/slides/110-variables.html @@ -0,0 +1,19 @@ +JavaScript Scope and Variables +

JavaScript Scope and Variables

+
var x = 1;
+
+// local scope
+for (let x = 1; x < 100; x+=1) {...}
+var y = 1;
+function process(inp) {
+    let y = inp * 2;
+    return y;
+}
+process(y);
+
+
+// constants
+const x = 1;
+x = 2; // 💣 BOOM!
+
+120-gosinta \ No newline at end of file diff --git a/slides/120-gosinta.html b/slides/120-gosinta.html new file mode 100644 index 0000000..a9c8a63 --- /dev/null +++ b/slides/120-gosinta.html @@ -0,0 +1,26 @@ +Arrow Functions (Gosinta) +

Arrow Functions (Gosinta)

+
+var solarsystem = {
+    planets: ['Mercury', 'Venus', 'Earth', 'Mars', 'Jupiter', 
+    'Saturn', 'Uranus', 'Neptune', 'Pluto (?)'],
+    showPlanets: function() {
+        this.planets.forEach(function(planet, idx) {
+            console.log(this.planets[idx]);
+        })
+    }
+};
+solarsystem.showPlanets(); // crash! ⛔ 
+
+
+var solarsystem = {
+    planets: ['Mercury', 'Venus', 'Earth', 'Mars', 'Jupiter', 
+    'Saturn', 'Uranus', 'Neptune', 'Pluto (?)'],
+    showPlanets: function() {
+        this.planets.forEach((planet, idx) => {
+            console.log(this.planets[idx]);
+        })
+    }
+};
+solarsystem.showPlanets(); // success! 🌍
+
\ No newline at end of file