Připravil: Ing. Jiří Lýsek, Ph.D. Verze: Webové technologie

Podobné dokumenty
Připravil: Ing. Jiří Lýsek, Ph.D. Verze: Webové technologie

Proč Angular JS framework?

Vývojařská Plzeň AngularJS

Ing. Přemysl Brada, MSc., Ph.D. Ing. Martin Dostal. Katedra informatiky a výpočetní techniky, FAV, ZČU v Plzni

OMO Patterny pro UI. Základy UI - HTML, DOM, JavaScript, CSS. Single Page Application

Ruby on Rails. Bc. Tomáš Juřík Bc. Bára Huňková

MODERNÍ WEB SNADNO A RYCHLE

Obsah přednášky. Představení webu ASP.NET frameworky Relační databáze Objektově-relační mapování Entity framework

Připravil: Ing. Jiří Lýsek, Ph.D. Verze: Webové aplikace

Připravil: Ing. Jiří Lýsek, Ph.D. Verze: Webové aplikace

Servlety a JSP. Petr Adámek, petr.adamek@ibacz.eu

HMI * nad webovými technologiemi

PŘEHLED A MOŽNOSTI VYUŽITÍ WEBOVÝCH MAPOVÝCH SLUŽEB

Snadný vývoj webových aplikací s Nette. Lukáš Jelínek

Počítačová Podpora Studia. Přednáška 5 Úvod do html a některých souvisejících IT. Web jako platforma pro vývoj aplikací.

TNPW1 Cvičení aneta.bartuskova@uhk.cz

INFORMAČNÍ SYSTÉMY NA WEBU

Připravil: Ing. Jiří Lýsek, Ph.D. Verze: Webové technologie

Tvorba WWW stránek. přehled technologií používaných na webu principy jednotlivých technologií a možnosti jejich vzájemného kombinování

KIV/PIA 2013 Jan Tichava

Postup. Úvodem. Hlavní myšlenka frameworku. application. system. assets. uploads

Ember.js. Jan Kopřiva, Vojtěch Jasný

PHP framework Nette. Kapitola Úvod. 1.2 Architektura Nette

RESTful API TAMZ 1. Cvičení 11

Třídy a objekty. Třídy a objekty. Vytvoření instance třídy. Přístup k atributům a metodám objektu. $z = new Zlomek(3, 5);

Připravil: Ing. Jiří Lýsek, Ph.D. Verze: Webové aplikace

2012 ET NETERA a.s. Wicket přehled technologie Martin Strejc

MVVM pro desktop i web

CineStar Černý Most Praha

Připravil: Ing. Jiří Lýsek, Ph.D. Verze: Webové aplikace

Michal Augustýn Microsoft Most Valuable Professional

Olga Rudikova 2. ročník APIN

Formuláře. Internetové publikování. Formuláře - příklad

Instalace a konfigurace web serveru. WA1 Martin Klíma

Připravil: Ing. Jiří Lýsek, Ph.D. Verze: Webové aplikace

+ knihovna funkcí usnadňujících práci v javascriptu

MBI - technologická realizace modelu

Tvorba webových stránek

Aplikační vrstva. Úvod do Php. Ing. Martin Dostal

AJAX. Dynamické změny obsahu stránek

Google Web Toolkit. Martin Šurkovský, SUR března Katedra informatiky

Technologie Java Enterprise Edition. Přemek Brada, KIV ZČU

Projekt JetConf REST API pro vzdálenou správu

1. Struktura stránky, zásady při psaní kódu, MVC pattern. Web pro kodéry (Petr Kosnar, ČVUT, FJFI, KFE, PINF 2008)

Obsah. Úvod 11 O autorovi 11 Koncept knihy 11 Zpětná vazba od čtenářů 12 Zdrojové kódy ke knize 12 Errata 12 ČÁST I VÝVOJ MOBILNÍ APLIKACE

(X)HTML, CSS a jquery

Střední odborná škola a Střední odborné učiliště, Hořovice

Tvorba informačních systémů

Zápasíme s REST API. Lukáš Křečan REST API Architect GoodData

Platformy / technologie. Jaroslav Žáček

Komponentově orientované webové frameworky. Jiří Stránský twitter.com/jistr

Vhodnost nasazení jednotlivých webových architektur, sdílení dat, perzistence, webové služby a REST, asynchronnost, messaging

Web Services na SOAP

Tvorba informačních systémů

Moderní webové aplikace AngularJS

Technologie Java. Jaroslav Žáček

1. Úvod do Ajaxu 11. Jak Ajax funguje? 13

Programovací jazyky Přehled a vývoj

OMO Patterny pro UI. Základy UI - HTML, DOM, JavaScript, CSS. Single Page Application

[ASP].NET Core Demystified. Miroslav Holec. Konzultant a lektor [ASP].NET Core.

Protokol HTTP 4IZ228 tvorba webových stránek a aplikací

NSWI142 Webové aplikace Zkouškový test

První kapitola úvod do problematiky

Server-side technologie pro webové aplikace

Programátorské večery. Tomáš Herceg Microsoft Student Partner

PLATFORMY / TECHNOLOGIE JAROSLAV ŽÁČEK

Obsah. Rozdíly mezi systémy Joomla 1.0 a Systém Joomla coby jednička online komunity...16 Shrnutí...16

HTML Hypertext Markup Language

Elektronická podpora výuky předmětu Komprese dat

Workmonitor. Servisní návod. 24. června 2014 w w w. p a p o u c h. c o m

Specifikace. Odevzdání do

Mediareference Vojtěch

Maturitní otázky z předmětu PROGRAMOVÁNÍ

Připravil: Ing. Jiří Lýsek, Ph.D. Verze: Webové aplikace

InternetovéTechnologie

IE1 jazyk HTML a kaskádové styly

MATLABLINK - VZDÁLENÉ OVLÁDÁNÍ A MONITOROVÁNÍ TECHNOLOGICKÝCH PROCESŮ

SUTOL Symposium 2014

Základní pojmy spojené s webovým publikováním ~ malý slovníček pojmů~ C3231 Základy WWW publikování Radka Svobodová, Stanislav Geidl

Specifikace reklamních formátů HTML 5 pro nasazení do ibillboard Ad Server Verze 2/2015

IE1 jazyk HTML a kaskádové styly

Vedoucí práce: Ing. Petr Soukup, Ph.D. Fakulta stavební Katedra mapování a kartografie Obor Geoinformatika

Manuál pro obsluhu Webových stránek

Stručný obsah. Část I Úvod. Část II Komponenty

SYLABUS IT V. Jiří Kubica. Ostrava 2011

Michal Augustýn ALWIL Software Microsoft Most Valuable Professional

Stránka se dá otevřít dvěma způsoby

Tvorba webu v HTML. Redakční systém. CMS Joomla! Co je Joomla

REGIONÁLNÍ INFORMAČNÍ SYSTÉM S PODPOROU MAP

VYSOKÁ ŠKOLA POLYTECHNICKÁ JIHLAVA Katedra elektrotechniky a informatiky Obor Aplikovaná informatika

Obchodní akademie a Jazyková škola s právem státní jazykové zkoušky Jihlava

Formuláře. Internetové publikování

Dynamické stránky v praxi. Bedřich Košata

Formy komunikace s knihovnami

Semináˇr Java X J2EE Semináˇr Java X p.1/23

KAPITOLA 3. Architektura aplikací na frameworku Rails. V této kapitole: modely, pohledy, řadiče.

Obsah. SEZNÁMENÍ S HRAMI V HTML Nové funkce HTML Nové funkce CSS

Název Live prez Sear enta Maps

KIV/PIA 2012 Ing. Jan Tichava

Transkript:

Připravil: Ing. Jiří Lýsek, Ph.D. Verze: 18.4.2017 Webové technologie RIA, SPA, AngularJS - šablony a controllery, služby $scope a $http

strana 2 RIA - Rich Internet Application Chová se podobně jako desktopová aplikace Okamžité reakce Přenosy dat na pozadí Velké množství logiky přeneseno na klienta pozor: nelze přenést vše Využití moderních API nebo pluginů Možnost práce i offline

strana 3 RIA - Rich Internet Application Kombinace mnoha technologií a přístupů Historický vývoj: 1. applety (Java) 2. flash/silverlight a jiné pluginy do prohlížeče 3. čistý JS s frameworkem

strana 4 SPA - Single Page Application Aplikace se načte pouze 1x jakákoliv další navigace je pouze v JS přenosy dat na pozadí 100% JS, 100% RIA Na serveru zůstává pouze DB a API (např. REST) Nutně vyžaduje JS framework jquery nestačí

strana 5 Ukázky RIA/SPA http://www.sreality.cz http://www.zbozi.cz Běžný návštěvník rozdíl úplně nepozná, ale princip tvorby je jiný. Většina věcí od Google maps, drive, mail, docs mojilidi.cz hejbejbrnem.cz

strana 6 AngularJS 1.x Vydáno r. 2009, verze 2 v roce 2016 https://angularjs.org/ Frontendový framework MVW - model-view-whatever Aplikace běží na straně klienta Práce s modelem, šablony Komunikace s modelem pomocí AJAJ ideálně REST

strana 7 AngularJS proč? Nový přístup k tvorbě webových aplikací Navržen pro dynamické změny HTML struktury - šablony Šetří spoustu práce programátorovi Je vhodný pro (větší) aplikace Na statické prezentace je zbytečný (nevhodný)

strana 8 AngularJS proč ve WA? Píše se v čistém JS React JSX, Angular 2 TypeScript, Vue single file komponenty Snadný start Jeden přidaný JS soubor, minimální boilerplate Angular obsahuje vše nutné Šablony, routing, služby, direktivy

strana 9 AngularJS - motivační příklad - kalkulačka věnujte pozornost tomu, jak je to napsané v celém kódu není jediný příkaz typu "teď překresli výsledek" a v JS kódu nevytváříme HTML objekty (máme šablony) Změny dat se promítají automaticky pokud dodržujeme určitá pravidla https://jsfiddle.net/hkhaf1s8/ je to framework - řídí nás to

AngularJS - motivační příklad - kalkulačka strana 10

AngularJS - motivační příklad - kalkulačka strana 11

strana 12 AngularJS - nevýhody větší zátěž klienta staré počítače mají problémy staré prohlížeče mají problémy nepodporují nové API (např. history) vyhledávače většinou neumí indexovat dynamický obsah Google ano site:informatika.mendelu.cz

strana 13 AngularJS a JSFiddle https://jsfiddle.net/0jwojjop/ přidat vlastní knihovnu z CDN nastavit prostředí

strana 14 AngularJS Aplikace View Kontrolery Služby Direktivy Filtry

strana 15 AngularJS - Aplikace aplikace je kontejner, do kterého registrujeme jmenované komponenty může být složena z modulů var app = angular.module('app', ['modul1', 'modul2']); app.constant("nazev", ); app.config(function() { }); app.run(function() { }); inicializace

strana 16 AngularJS - dependency injection každá komponenta aplikace deklaruje své závislosti, když je vytvářena její konkrétní instance, budou jí předány instance služeb, konstant apod. var app = angular.module('app', []); app.constant("zav", { }); app.controller('nazev', function(zav) { zav.metoda(); });

strana 17 AngularJS - View HTML šablona obohacená o speciální atributy ng-* ng-app, ng-controller ng-model, ng-bind, ng-bind-html ng-if, ng-repeat ng-show, ng-hide ng-class, ng-style, ng-href, ng-src ng-click, ng-change, ng-submit https://jsfiddle.net/8vgsdgwo/ tzv. direktivy

strana 18 Speciality ng-src, ng-href Nahrazuje standardní atributy href a src Pokud používáme v atributech proměnné {{ }}, došlo by ke dvojitému odeslání HTTP požadavku (u src) nebo podivnému mezistavu (u href) https://jsfiddle.net/7q8bvhwg/

strana 19 AngularJS - View <!DOCTYPE html> <html ng-app="app"> <head> </head> <body> <div ng-controller="nazevctrl"> <p ng-repeat="person in people"> {{person.name filtr}} </p> </div> </body> </html> direktiva proměnná s filtrem

strana 20 AngularJS - Kontroler JS funkce pracuje se službami načte obvykle data z REST API a zajistí jejich předání šabloně ($scope, $http) opačně data zase odešle pomocí dependency injection získá reference na potřebné služby $scope, $rootscope, $http, $routeparams

strana 21 AngularJS - Kontroler závislosti přes DI app.controller('ctrl', function($scope) { }); $scope.cokoliv = "data"; $scope.funkce = function(arg1) { $scope.cokoliv = "jina data"; }; i funkce pro obsluhu události je vlastnost $scope

strana 22 AngularJS - $scope a $rootscope kontejner propojující kontroler a view $rootscope je v aplikace jen jeden $rootscope.nadpis = " "; $scope.text = " "; $rootscope <body ng-app="app"> {{nadpis}} <header ng-controller="headerctrl"> {{nadpis}} {{text}} </header> {{text}} <!-- nefunguje --> </body> $scope z HeaderCtrl

strana 23 AngularJS - zanoření kontrolerů <div ng-controller="firstctrl"> {{prom}} <div ng-controller="secondctrl"> {{prom}} <div ng-controller="thirdctrl"> {{prom}} </div> </div> </div> $scope se dědí

strana 24 AngularJS - služba $http komunikace s backend API GET, POST, PUT, DELETE $http.post("url", postdata).then(function(responsedata) { }, function(responseerror) { });

strana 25 Příklad aplikace, která přes OMDb API načítá plakáty filmů podle pole pro vyhledávání http://omdbapi.com/