43
Ajax Asynchronous JavaScript and XML

Ajax - jQuery

Embed Size (px)

Citation preview

Page 1: Ajax - jQuery

AjaxAsynchronous JavaScript and XML

Page 2: Ajax - jQuery

Dagens agenda• Vad innebär ajax?• Hur använder man ajax?• Exempel på ajax• Att bygga en enkel tjänst med ajax

Page 3: Ajax - jQuery

” 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.”

Page 4: Ajax - jQuery
Page 5: Ajax - jQuery
Page 6: Ajax - jQuery

Exempel: Googlehttps://www.google.se

Page 7: Ajax - jQuery

”…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.

Page 8: Ajax - jQuery

Problem: hämta/skicka information utanför vår html-sidaLösning: Ajax (oavsett om det är information från vår egen webbplats, eller från annan webbplats)

Page 9: Ajax - jQuery

”Att interaktivt ändra innehållet på vår webbplats”Från olika data-källor

Page 10: Ajax - jQuery

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.

Page 11: Ajax - jQuery

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

Page 12: Ajax - jQuery

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

Page 13: Ajax - jQuery
Page 14: Ajax - jQuery

Sidomladdning

Klassisk webbsida

moviefinder.com/index.html

moviefinder.com/result.html

Page 15: Ajax - jQuery

Interaktiv webbsida m.h.a. Ajax

moviefinder.com/index.html

Page 16: Ajax - jQuery

jQuerys Ajax-metoder

Page 17: Ajax - jQuery

jQuerys Ajax-metoder

Page 18: Ajax - jQuery

Exempel på ett ajax-anrop”data” är ett objekt med svaret som vi laddat in

”data” är ett objekt med ev. fel som förekommit

Page 19: Ajax - jQuery

AsynkrontBra att veta!

Page 20: Ajax - jQuery

Körning av ajax-anropet

Page 21: Ajax - jQuery

Körning av ajax-anropet

Page 22: Ajax - jQuery

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)

Page 23: Ajax - jQuery

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).

Page 24: Ajax - jQuery

Utan anonyma funktioner

Page 25: Ajax - jQuery

Ett standard ajax-anrop• Med jQuery.

Page 26: Ajax - 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! =)

Page 27: Ajax - jQuery

Exempel:Raggningsrepliker

Page 28: Ajax - jQuery
Page 29: Ajax - jQuery
Page 30: Ajax - jQuery

Förutsättningar• Vi har en sida som ger oss slumpvalda

raggningsrepliker i ren text http://localhost:1234/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

Page 31: Ajax - jQuery

Låt oss testa!

Page 32: Ajax - jQuery

Använda externaAPI http://www.icndb.com/api/

Page 33: Ajax - jQuery
Page 34: Ajax - jQuery

JSONJavaScript Object Notation

Page 35: Ajax - jQuery
Page 36: Ajax - jQuery

http://api.icndb.com/jokes/random

Page 37: Ajax - jQuery
Page 38: Ajax - jQuery

GeolocationVar är du just nu?

Page 39: Ajax - jQuery

Geolocation• JavaScript gör det möjligt för oss att ta reda på

enhetens position.• Det krävs att användaren godkänner att vi får ta

del av dennas position• Får svar i form av koordinatorer m.m.

Page 40: Ajax - jQuery

Funktion - getCurrentPosition• Den vanligaste funktionen som används är:

getCurrentPosition

• Den kallas genom JavaScript-objektet ”navigatior” navigator.geolocation.getCurrentPosition();

• Funktionen tar 3st parametrar Funktion för success Funktion för fail Egenskaper att skicka med

• navigator.geolocation.getCurrentPosition(onSuccess,onFail,{enableHighAccuracy: true}

);• OBS anropet sker asynkront

Page 41: Ajax - jQuery

Första exempel

Page 42: Ajax - jQuery

Svar från getCurrentPosition()

Page 43: Ajax - jQuery

DemoHämta vår position