SlideShare une entreprise Scribd logo
1  sur  78
Télécharger pour lire hors ligne
jQuery & Ajax
Att bygga interaktiva webbplatser
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
• Ajax, vad är det?
• Ajax, syntax
• Case - Ajax
Framworks &
Libraries
Ramverk?
Bibliotek
https://www.smashingmagazine.com/2016/11/not-an-imposter-fighting-front-end-fatigue/
Erfarenheter hittills
utav jQuery?
http://trends.builtwith.com/javascript/jQuery
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
• http://www.w3schools.com/jquery/
• https://www.codecademy.com/learn/learn-jquery
• https://learn.jquery.com/
• https://www.codeschool.com/courses/try-jquery
• http://jqfundamentals.com/chapter/jquery-basics
https://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
Snabba exempel – samt att bygga en Todo-lista
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.
jQuery - Exempel
Att göra flikar!
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-*
Dags att filtrera data!
DOM
Behöver vi ha koll på nu!
DOM
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 & DOM
jQuery – lägga till innehåll
Bygga modals!
Typ, snygga popup på bilder.
Ajax
Asynchronous JavaScript
and XML
Agenda - ajax
• Vad innebär ajax?
• Hur använder man ajax?
• Exempel på ajax
• Att bygga en enkel tjänst med ajax
” AJAX (en. Asynchronous
JavaScript and XML) är ett
samlingsnamn för flera olika
tekniker som kan användas
för att bygga applikationer
för World Wide Web med
bättre interaktivitet än
tidigare webbapplikationer.”
Exempel: Google
https://www.google.se
”…för flera olika tekniker”
• XMLHttpRequest-objektet, som tillåter JavaScript på en webbsida att göra
anrop till en webbserver utan att sidan laddas om.
• Detta kan var både inom den egna webbplatsen, eller till externa webbplatser
• DOM (Document Object Model) vilket tillåter JavaScript att skriva om
innehåll på den aktuella sidan.
• HTML och CSS vilket beskriver utseende för, och märker, innehållet på sidan.
• XML, JSON, m.m. som används för att formatera data som transporteras
mellan klient och server. Vanlig text kan också användas som format.
Problem: hämta/skicka information utanför
vår html-sida
Lösning: Ajax (oavsett om det är information från vår egen webbplats, eller från annan webbplats)
”Att interaktivt ändra innehållet på vår
webbplats”
Från olika data-källor
Exempelområden
• Autocomplete (http://google.com)
• Vid sökningar av diverse information
• Flerstegsformulär (http://demo.tutorialzine.com/2011/11/chained-ajax-selects-jquery/)
• ”Realtidssystem”
• T.ex. chattsystem, auto-uppdateringar, etc.
• Direktvalidering av formulär
• Autosparning av information
• Röstningssystem
• Etc.
Fördelar med Ajax
• Snabbar upp användandet av webbplatser
• Ladda bara om den information vi behöver – inte allt
• Färre siduppdateringar på webbplatsen
• Reducerar nätverkstrafik
• Minskar serverbelastning
• Ger ett mer interaktivt GUI
Nackdelar med Ajax
• Bokmärken slutar fungera
• Sökmotorer indexerar inte innehållet som laddas genom
ajax
• ”Bakåtknappen” slutar att fungera
• JavaScript kan enkelt inaktiveras från klientsidan
Sidomladdning
• Klassisk webbsida
moviefinder.com/index.html
moviefinder.com/result.html
• Interaktiv webbsida m.h.a. Ajax
moviefinder.com/index.html
• jQuerys Ajax-metoder
• jQuerys Ajax-metoder
Exempel på ett ajax-anrop
”data” är ett objekt
med svaret som vi får
från vårt anrop
”data” är ett objekt
med ev. fel som
förekommit
Asynkront
Bra att veta!
Körning av ajax-anropet
Körning av ajax-anropet
Varför asynkront?
• Vi vill inte behöva vänta på slöa servrar! (eller andra saker
som kan hindra får sidan från att vara snabb)
Callback-funktioner
• Istället för att göra saker i den ordning som det står (synkront), vill vi
istället göra saker när vårt ajax-anrop får ett svar (asynkront).
Utan anonyma funktioner
Ett standard ajax-anrop
• Med jQuery.
API – Ett trevligt sätt att hämta data på.
• Vi vill använda redan färdig data i våra applikationer, t.ex.
• Musik (t.ex. https://developer.spotify.com/)
• Film (t.ex. https://www.omdbapi.com/)
• Chuck Norris jokes (http://www.icndb.com/api/)
• … och massvis andra data källor.
• Vi kan även skapa egna data-källor vilket vi ska börja med! =)
Exempel:
Raggningsrepliker
Förutsättningar
• Vi har en sida som ger oss slumpvalda raggningsrepliker i
ren text
• http://localhost:8080/date.php
• Vi vill nu varje gång vi klickar på knappen ”Ge mig ett tips”,
genom JavaScript (och jQuery) ladda in denna sidas
innehåll – och visa upp det
Låt oss testa!
Använda externa API
http://www.icndb.com/api/
JSON
JavaScript Object Notation
http://api.icndb.com/jokes/random
jQuery & Ajax

Contenu connexe

Similaire à jQuery & Ajax

VT2018 - DA355A - Phonegap, react, vue.js
VT2018 - DA355A - Phonegap, react, vue.jsVT2018 - DA355A - Phonegap, react, vue.js
VT2018 - DA355A - Phonegap, react, vue.jsAnton Tibblin
 
HT17 - DA156A - Sammanfattning av kursen
HT17 - DA156A - Sammanfattning av kursenHT17 - DA156A - Sammanfattning av kursen
HT17 - DA156A - Sammanfattning av kursenAnton Tibblin
 
WebSockets för applikationstestare
WebSockets för applikationstestareWebSockets för applikationstestare
WebSockets för applikationstestareholiman
 
VT18 - DA355A - Introduktion till JavaScript
VT18 - DA355A - Introduktion till JavaScriptVT18 - DA355A - Introduktion till JavaScript
VT18 - DA355A - Introduktion till JavaScriptAnton Tibblin
 
Responsiv webbdesign + HTML5 + CSS5
Responsiv webbdesign + HTML5 + CSS5Responsiv webbdesign + HTML5 + CSS5
Responsiv webbdesign + HTML5 + CSS5Martin Carlsson
 
HT18 - DA354A - Bottle web app
HT18 - DA354A - Bottle web appHT18 - DA354A - Bottle web app
HT18 - DA354A - Bottle web appAnton Tibblin
 
VT17 - DA355A - Intro JS
VT17 - DA355A - Intro JSVT17 - DA355A - Intro JS
VT17 - DA355A - Intro JSAnton Tibblin
 
HT23 - DA106A - Introduktion till JavaScript
HT23 - DA106A - Introduktion till JavaScriptHT23 - DA106A - Introduktion till JavaScript
HT23 - DA106A - Introduktion till JavaScriptAnton Tibblin
 
HT19 - DA354A - Webbprogrammering med bottle
HT19 - DA354A - Webbprogrammering med bottleHT19 - DA354A - Webbprogrammering med bottle
HT19 - DA354A - Webbprogrammering med bottleAnton Tibblin
 
Using Microformats to aggregate data
Using Microformats to aggregate dataUsing Microformats to aggregate data
Using Microformats to aggregate dataGabriel Svennerberg
 
HT17 - DA354A - Webbapplikation
HT17 - DA354A - WebbapplikationHT17 - DA354A - Webbapplikation
HT17 - DA354A - WebbapplikationAnton Tibblin
 
HT23 - DA354A - Webbprogrammering med Python
HT23 - DA354A - Webbprogrammering med PythonHT23 - DA354A - Webbprogrammering med Python
HT23 - DA354A - Webbprogrammering med PythonAnton Tibblin
 
Webbapplikationer - Kursintroduktion (anton.tibblin@mah.se)
Webbapplikationer - Kursintroduktion (anton.tibblin@mah.se)Webbapplikationer - Kursintroduktion (anton.tibblin@mah.se)
Webbapplikationer - Kursintroduktion (anton.tibblin@mah.se)Anton Tibblin
 
HT19 - DA156A - Ramverk och bibliotek
HT19 - DA156A - Ramverk och bibliotekHT19 - DA156A - Ramverk och bibliotek
HT19 - DA156A - Ramverk och bibliotekAnton Tibblin
 
HT18 - DA156A - Frameworks
HT18 - DA156A - FrameworksHT18 - DA156A - Frameworks
HT18 - DA156A - FrameworksAnton Tibblin
 

Similaire à jQuery & Ajax (20)

VT2018 - DA355A - Phonegap, react, vue.js
VT2018 - DA355A - Phonegap, react, vue.jsVT2018 - DA355A - Phonegap, react, vue.js
VT2018 - DA355A - Phonegap, react, vue.js
 
HT17 - DA156A - Sammanfattning av kursen
HT17 - DA156A - Sammanfattning av kursenHT17 - DA156A - Sammanfattning av kursen
HT17 - DA156A - Sammanfattning av kursen
 
Ajax
AjaxAjax
Ajax
 
OPTIMERA STHLM! Loadimpact
OPTIMERA STHLM! LoadimpactOPTIMERA STHLM! Loadimpact
OPTIMERA STHLM! Loadimpact
 
WebSockets för applikationstestare
WebSockets för applikationstestareWebSockets för applikationstestare
WebSockets för applikationstestare
 
VT18 - DA355A - Introduktion till JavaScript
VT18 - DA355A - Introduktion till JavaScriptVT18 - DA355A - Introduktion till JavaScript
VT18 - DA355A - Introduktion till JavaScript
 
Responsiv webbdesign + HTML5 + CSS5
Responsiv webbdesign + HTML5 + CSS5Responsiv webbdesign + HTML5 + CSS5
Responsiv webbdesign + HTML5 + CSS5
 
Webb workshop 1
Webb workshop 1Webb workshop 1
Webb workshop 1
 
HT18 - DA354A - Bottle web app
HT18 - DA354A - Bottle web appHT18 - DA354A - Bottle web app
HT18 - DA354A - Bottle web app
 
VT17 - DA355A - Intro JS
VT17 - DA355A - Intro JSVT17 - DA355A - Intro JS
VT17 - DA355A - Intro JS
 
HT23 - DA106A - Introduktion till JavaScript
HT23 - DA106A - Introduktion till JavaScriptHT23 - DA106A - Introduktion till JavaScript
HT23 - DA106A - Introduktion till JavaScript
 
Vad är webb
Vad är webbVad är webb
Vad är webb
 
HT19 - DA354A - Webbprogrammering med bottle
HT19 - DA354A - Webbprogrammering med bottleHT19 - DA354A - Webbprogrammering med bottle
HT19 - DA354A - Webbprogrammering med bottle
 
Using Microformats to aggregate data
Using Microformats to aggregate dataUsing Microformats to aggregate data
Using Microformats to aggregate data
 
HT17 - DA354A - Webbapplikation
HT17 - DA354A - WebbapplikationHT17 - DA354A - Webbapplikation
HT17 - DA354A - Webbapplikation
 
13 cms ht14
13 cms ht1413 cms ht14
13 cms ht14
 
HT23 - DA354A - Webbprogrammering med Python
HT23 - DA354A - Webbprogrammering med PythonHT23 - DA354A - Webbprogrammering med Python
HT23 - DA354A - Webbprogrammering med Python
 
Webbapplikationer - Kursintroduktion (anton.tibblin@mah.se)
Webbapplikationer - Kursintroduktion (anton.tibblin@mah.se)Webbapplikationer - Kursintroduktion (anton.tibblin@mah.se)
Webbapplikationer - Kursintroduktion (anton.tibblin@mah.se)
 
HT19 - DA156A - Ramverk och bibliotek
HT19 - DA156A - Ramverk och bibliotekHT19 - DA156A - Ramverk och bibliotek
HT19 - DA156A - Ramverk och bibliotek
 
HT18 - DA156A - Frameworks
HT18 - DA156A - FrameworksHT18 - DA156A - Frameworks
HT18 - DA156A - Frameworks
 

Plus de Anton Tibblin

2024 - Localstorage & cookies Geolocation Mediahantering.pdf
2024 - Localstorage & cookies Geolocation Mediahantering.pdf2024 - Localstorage & cookies Geolocation Mediahantering.pdf
2024 - Localstorage & cookies Geolocation Mediahantering.pdfAnton Tibblin
 
VT24 - Responsiv design & Ramverk inom webbutveckling
VT24 - Responsiv design & Ramverk inom webbutvecklingVT24 - Responsiv design & Ramverk inom webbutveckling
VT24 - Responsiv design & Ramverk inom webbutvecklingAnton Tibblin
 
DA395A - VT24 - JavaScript & Document object model
DA395A - VT24 - JavaScript & Document object modelDA395A - VT24 - JavaScript & Document object model
DA395A - VT24 - JavaScript & Document object modelAnton Tibblin
 
VT24 - DA395A - Kursintroduktion: Flerplattformsapplikationer med webbtekniker
VT24 - DA395A - Kursintroduktion: Flerplattformsapplikationer med webbteknikerVT24 - DA395A - Kursintroduktion: Flerplattformsapplikationer med webbtekniker
VT24 - DA395A - Kursintroduktion: Flerplattformsapplikationer med webbteknikerAnton Tibblin
 
HT23 - DA354A - Fil- och felhantering
HT23 - DA354A - Fil- och felhanteringHT23 - DA354A - Fil- och felhantering
HT23 - DA354A - Fil- och felhanteringAnton Tibblin
 
HT23 - DA354A - Listor och lexikon
HT23 - DA354A - Listor och lexikonHT23 - DA354A - Listor och lexikon
HT23 - DA354A - Listor och lexikonAnton Tibblin
 
HT23 - DA354A - Kursintroduktion
HT23 - DA354A - KursintroduktionHT23 - DA354A - Kursintroduktion
HT23 - DA354A - KursintroduktionAnton Tibblin
 
HT23 - DA106A - Användbarhet (2)
HT23 - DA106A - Användbarhet (2)HT23 - DA106A - Användbarhet (2)
HT23 - DA106A - Användbarhet (2)Anton Tibblin
 
HT23 - DA106A - Användbarhet 1
HT23 - DA106A - Användbarhet 1HT23 - DA106A - Användbarhet 1
HT23 - DA106A - Användbarhet 1Anton Tibblin
 
HT23 - DA106A - Ramverk & Bibliotek
HT23 - DA106A - Ramverk & BibliotekHT23 - DA106A - Ramverk & Bibliotek
HT23 - DA106A - Ramverk & BibliotekAnton Tibblin
 
HT23 - DA106A - Responsiv webbutveckling
HT23 - DA106A - Responsiv webbutvecklingHT23 - DA106A - Responsiv webbutveckling
HT23 - DA106A - Responsiv webbutvecklingAnton Tibblin
 
HT23 - DA106A - Layout (2)
HT23 - DA106A - Layout (2)HT23 - DA106A - Layout (2)
HT23 - DA106A - Layout (2)Anton Tibblin
 
HT23 - DA106A - Layout med CSS (1)
HT23 - DA106A - Layout med CSS (1)HT23 - DA106A - Layout med CSS (1)
HT23 - DA106A - Layout med CSS (1)Anton Tibblin
 
Introduktion till CSS
Introduktion till CSSIntroduktion till CSS
Introduktion till CSSAnton Tibblin
 
HTML - Tabeller och formulär
HTML - Tabeller och formulärHTML - Tabeller och formulär
HTML - Tabeller och formulärAnton Tibblin
 
Introduktion till HTML
Introduktion till HTMLIntroduktion till HTML
Introduktion till HTMLAnton Tibblin
 
LocalStorage - GeoLocation - Media
LocalStorage - GeoLocation - MediaLocalStorage - GeoLocation - Media
LocalStorage - GeoLocation - MediaAnton Tibblin
 
VT23 - RWD & Ramverk
VT23 - RWD & RamverkVT23 - RWD & Ramverk
VT23 - RWD & RamverkAnton Tibblin
 

Plus de Anton Tibblin (20)

2024 - Localstorage & cookies Geolocation Mediahantering.pdf
2024 - Localstorage & cookies Geolocation Mediahantering.pdf2024 - Localstorage & cookies Geolocation Mediahantering.pdf
2024 - Localstorage & cookies Geolocation Mediahantering.pdf
 
VT24 - Responsiv design & Ramverk inom webbutveckling
VT24 - Responsiv design & Ramverk inom webbutvecklingVT24 - Responsiv design & Ramverk inom webbutveckling
VT24 - Responsiv design & Ramverk inom webbutveckling
 
DA395A - VT24 - JavaScript & Document object model
DA395A - VT24 - JavaScript & Document object modelDA395A - VT24 - JavaScript & Document object model
DA395A - VT24 - JavaScript & Document object model
 
VT24 - DA395A - Kursintroduktion: Flerplattformsapplikationer med webbtekniker
VT24 - DA395A - Kursintroduktion: Flerplattformsapplikationer med webbteknikerVT24 - DA395A - Kursintroduktion: Flerplattformsapplikationer med webbtekniker
VT24 - DA395A - Kursintroduktion: Flerplattformsapplikationer med webbtekniker
 
HT23 - DA354A - Fil- och felhantering
HT23 - DA354A - Fil- och felhanteringHT23 - DA354A - Fil- och felhantering
HT23 - DA354A - Fil- och felhantering
 
HT23 - DA354A - Listor och lexikon
HT23 - DA354A - Listor och lexikonHT23 - DA354A - Listor och lexikon
HT23 - DA354A - Listor och lexikon
 
HT23 - DA354A - Kursintroduktion
HT23 - DA354A - KursintroduktionHT23 - DA354A - Kursintroduktion
HT23 - DA354A - Kursintroduktion
 
HT23 - DA106A - Användbarhet (2)
HT23 - DA106A - Användbarhet (2)HT23 - DA106A - Användbarhet (2)
HT23 - DA106A - Användbarhet (2)
 
HT23 - DA106A - Användbarhet 1
HT23 - DA106A - Användbarhet 1HT23 - DA106A - Användbarhet 1
HT23 - DA106A - Användbarhet 1
 
HT23 - DA106A - Ramverk & Bibliotek
HT23 - DA106A - Ramverk & BibliotekHT23 - DA106A - Ramverk & Bibliotek
HT23 - DA106A - Ramverk & Bibliotek
 
HT23 - DA106A - Responsiv webbutveckling
HT23 - DA106A - Responsiv webbutvecklingHT23 - DA106A - Responsiv webbutveckling
HT23 - DA106A - Responsiv webbutveckling
 
HT23 - DA106A - Layout (2)
HT23 - DA106A - Layout (2)HT23 - DA106A - Layout (2)
HT23 - DA106A - Layout (2)
 
HT23 - DA106A - Layout med CSS (1)
HT23 - DA106A - Layout med CSS (1)HT23 - DA106A - Layout med CSS (1)
HT23 - DA106A - Layout med CSS (1)
 
Introduktion till CSS
Introduktion till CSSIntroduktion till CSS
Introduktion till CSS
 
HTML - Tabeller och formulär
HTML - Tabeller och formulärHTML - Tabeller och formulär
HTML - Tabeller och formulär
 
Introduktion till HTML
Introduktion till HTMLIntroduktion till HTML
Introduktion till HTML
 
Kursintroduktion
KursintroduktionKursintroduktion
Kursintroduktion
 
LocalStorage - GeoLocation - Media
LocalStorage - GeoLocation - MediaLocalStorage - GeoLocation - Media
LocalStorage - GeoLocation - Media
 
VT23 - RWD & Ramverk
VT23 - RWD & RamverkVT23 - RWD & Ramverk
VT23 - RWD & Ramverk
 
JavaScript & DOM
JavaScript & DOMJavaScript & DOM
JavaScript & DOM
 

jQuery & Ajax