JS-biblioteket jQuery
+ Offlinehantering
Erfarenheter hittills
utav jQuery?
http://trends.builtwith.com/javascript/jQuery
Dagens föreläsing
• jQuery, varför?
• jQuery, syntax
• Lär känna din HTML-kod
• DOM – Nyckeln till interaktiva webbplatser
• Case, förstå sin HTML-kod
 Metoder för att lösa problem
1. jQuery erbjuder ”enklare” kod
2. jQuery erbjuder många bra funktioner
3. jQuery är cross-platform
+ Många plugins
+ Många guider
Exempel på guider
• https://www.codecademy.com/learn/jquery
• https://learn.jquery.com/
• http://www.w3schools.com/jquery/
• https://www.codeschool.com/courses/try-jquery
• http://jqfundamentals.com/chapter/jquery-basics
http://api.jquery.com/
$ = jQuery
$ är en referens till jQuery-objektet
jQuery
• Vi kallar på jQuery när vi vill hitta element på vår
webbsida.
Jämför med vanligt
JavaScript
jQuery-funktioner på element
jQuery – Mer än bara hitta
element
• jQuery har fler väldigt nyttiga funktioner vi kan
använda, t.ex.
jQuery != JavaScript
• Vi kan inte använda ”vanliga” JavaScript-funktioner på
jQuery-objekt, och vice versa.
jQuery - Exempel
Att göra!
Lär känna din HTML-kod
Vad är syftet med
HTML?
Varför har vi
element i HTML?
Varför har vi
attribut i HTML?
Vad finns det för attribut?
• Många! T.ex.
 id
 class
 title
 rel
 src
 href
 type
 … och många fler.
• Beroende vilken typ av element det är - finns det olika
attribut som är användbara.
HTML 5 – Attributet data-*
• Ibland så räcker inte de attributen som vi har att tillgå
till. Tänk om jag har behov som dessa inte motsvarar?
• Attributet data-* ger oss möjlighet att skapa egna
attribut där * är ett valfritt namn, t.ex. skulle vi kunna
skapa följande attribut för element:
jQuery – Hämta attribut
Demo – data-*
DOM
Behöver vi ha koll på nu!
DOM
• Trädstruktur som motsvarar taggarnas ordning/nästling
• Varje element är en ”nod” i trädet
• Relationer mellan noderna beskrivs med förälder/barn och syskon
Källkod vs. noder
jQuery & DOM
• jQuery har många bra funktioner för att navigera i
DOM
 Som dessutom fungerar cross-browser!
• https://api.jquery.com/category/traversing/tree-traversal/
jQuery – lägga till innehåll
Navigera i DOM
Case
Kalles teknikbutik
• Hur kan vi genom HTML/JavaScript spara priserna, så
att de blir så enkla som möjligt att arbeta med?
• Hur ska vi tänka gällande ”X”-knappen. Hur ska den
fungera?
• Hur fungerar ”+”-knappen. Hur får vi över produkten
till varukorgen, samt adderar priset till ”totalpris”?
• Vilka jQuery-funktioner kan vi använda till ovan?
HTML 5 –
Offlinehantering
HTML5 - Cache
• Vad händer när en webbapp inte har någon anslutning?
• Vi kan använda oss utav HTML5 cache för att undvika
otrevliga ”du har ingen anslutning”-sidor
 Istället laddar vi in sidan från en specificerad Cache
 Eller anger vad som ska visas när ingen täckning finns
• Bra läsning:
 http://www.html5rocks.com/en/tutorials/appcache/beginner/
 http://diveintohtml5.info/offline.html
Cache i praktiken
Vid internetanslutning:
Finns cache?
JA:
- Är har vi den senaste versionen av de cachade filerna?
Annars laddar vi ner de senaste versionerna från servern.
NEJ:
- Hämtar specificerade filer från servern.
Utan internetanslutning:
Finns cache?
JA:
- Ladda in webbsidan (+ ev. specificerade resurser)
NEJ:
- Visa ”Sidan kan inte hämtas”
Cache – Hur funkar det?
1. Vi anger att vi vill aktivera cache i HTML-filen
1. <html manifest="site.appcache">
2. Vi skapar vår cache-fil
1. Skapar ” site.appcache”
2. Väljer vad vi vill cacha
3. Väljer vad som händer om vi försöker nå icke-cachat
offline
3. Ev. ställa in att servern har rätt mime-type av
.manifest/.appcache-filer
En .manifest-fil
CACHE MANIFEST
# 2016-02-08 v1.0
/theme.css
/logo.gif
/main.js
NETWORK:
login.html
FALLBACK:
/html/ /offline.html
När uppdateras cachen?
• När användaren tar bort cache
• När manifest-filen ändras
• När vi tvingar en uppdatering
Demo
Cache
Kontrollera om man är online?
• Det kan vi göra genom:
navigation.onLine; // Som returerar true/false
• Samt använda oss utav händeslerna
 online
 offline
http://webshare.mah.se/tsanti/isOnline.html
http://webshare.mah.se/tsanti/isOnline.html

jQuery & HTML5 Cache

Editor's Notes

  • #2 Responsiv design – olika enheter – olika möjligheter.
  • #19 Vi bygger flikar! =)
  • #28 Filtrera filmer efter genre.