jquery and ajax

76
JS-biblioteket jQuery

Upload: anton-tibblin

Post on 22-Jan-2018

413 views

Category:

Education


0 download

TRANSCRIPT

Page 1: jQuery and Ajax

JS-biblioteket jQuery

Page 2: jQuery and Ajax

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

Page 3: jQuery and Ajax
Page 4: jQuery and Ajax

Framworks &Libraries

Page 5: jQuery and Ajax

Ramverk?

Page 6: jQuery and Ajax

Bibliotek

Page 7: jQuery and Ajax

https://www.smashingmagazine.com/2016/11/not-an-imposter-fighting-front-end-fatigue/

Page 8: jQuery and Ajax
Page 9: jQuery and Ajax

Erfarenheter hittills utav jQuery?

Page 10: jQuery and Ajax

http://trends.builtwith.com/javascript/jQuery

Page 11: jQuery and Ajax

1. jQuery erbjuder ”enklare” kod

Page 12: jQuery and Ajax

2. jQuery erbjuder många bra funktioner

Page 13: jQuery and Ajax

3. jQuery är cross-platform

Page 14: jQuery and Ajax

+ Många plugins

Page 15: jQuery and Ajax

+ Många guider

Page 16: jQuery and Ajax

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

Page 17: jQuery and Ajax

http://api.jquery.com/

Page 18: jQuery and Ajax

$ = jQuery$ är en referens till jQuery-objektet

Page 19: jQuery and Ajax

jQuery• Vi kallar på jQuery när vi vill hitta element på vår

webbsida.

Page 20: jQuery and Ajax

Jämför med vanligt JavaScript

Page 21: jQuery and Ajax

jQuery-funktioner på element

Page 22: jQuery and Ajax

jQuery – Mer än bara hitta element• jQuery har fler väldigt nyttiga funktioner vi kan

använda, t.ex.

Page 23: jQuery and Ajax

jQuery != JavaScript• Vi kan inte använda ”vanliga” JavaScript-funktioner på

jQuery-objekt, och vice versa.

Page 24: jQuery and Ajax

jQuery - ExempelAtt göra!

Page 25: jQuery and Ajax

Lär känna din HTML-kod

Page 26: jQuery and Ajax

Vad är syftet med HTML?

Page 27: jQuery and Ajax

Varför har vi element i HTML?

Page 28: jQuery and Ajax

Varför har vi attribut i HTML?

Page 29: jQuery and Ajax
Page 30: jQuery and Ajax

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.

Page 31: jQuery and Ajax

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:

Page 32: jQuery and Ajax

jQuery – Hämta attribut

Page 33: jQuery and Ajax

Demo – data-*

Page 34: jQuery and Ajax

DOMBehöver vi ha koll på nu!

Page 35: jQuery and Ajax

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

Page 36: jQuery and Ajax

Källkod vs. noder

Page 37: jQuery and Ajax

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/

Page 38: jQuery and Ajax

jQuery – lägga till innehåll

Page 39: jQuery and Ajax

Demo - Navigera i DOM

Page 40: jQuery and Ajax

AjaxAsynchronous JavaScript and XML

Page 41: jQuery and Ajax

Dagens agenda• Vad innebär ajax?

• Hur använder man ajax?

• Exempel på ajax

• Att bygga en enkel tjänst med ajax

Page 42: jQuery and 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.”

Page 43: jQuery and Ajax
Page 44: jQuery and Ajax
Page 45: jQuery and Ajax

Exempel: Googlehttps://www.google.se

Page 46: jQuery and Ajax

”…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 47: jQuery and Ajax

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 48: jQuery and Ajax

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

Page 49: jQuery and Ajax

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 50: jQuery and Ajax

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 51: jQuery and Ajax

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 52: jQuery and Ajax
Page 53: jQuery and Ajax

Sidomladdning

Klassisk webbsida

moviefinder.com/index.html

moviefinder.com/result.html

Page 54: jQuery and Ajax

Interaktiv webbsida m.h.a. Ajax

moviefinder.com/index.html

Page 55: jQuery and Ajax

jQuerys Ajax-metoder

Page 56: jQuery and Ajax

jQuerys Ajax-metoder

Page 57: jQuery and Ajax

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 58: jQuery and Ajax

AsynkrontBra att veta!

Page 59: jQuery and Ajax

Körning av ajax-anropet

Page 60: jQuery and Ajax

Körning av ajax-anropet

Page 61: jQuery and Ajax

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 62: jQuery and Ajax

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 63: jQuery and Ajax

Utan anonyma funktioner

Page 64: jQuery and Ajax

Ett standard ajax-anrop• Med jQuery.

Page 65: jQuery and Ajax

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 66: jQuery and Ajax

Exempel:Raggningsrepliker

Page 67: jQuery and Ajax
Page 68: jQuery and Ajax
Page 69: jQuery and Ajax

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 70: jQuery and Ajax

Låt oss testa!

Page 71: jQuery and Ajax

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

Page 72: jQuery and Ajax
Page 73: jQuery and Ajax

JSONJavaScript Object Notation

Page 74: jQuery and Ajax
Page 75: jQuery and Ajax

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

Page 76: jQuery and Ajax