Materiały dla studentów Informatyki WSZiB w Krakowie
|
|
- Amelia Pawlak
- 9 lat temu
- Przeglądów:
Transkrypt
1 Przedmiot: Aplikacje internetowe Dr inż. Stanisław Polak Wyższa Szkoła Zarządzania i Bankowości w Krakowie Materiały dla studentów Informatyki WSZiB w Krakowie Dr inż. Stanisław Polak 1 Przedmiot: Aplikacje internetowe Plan prezentacji Serwer Node.js Framework Express Dr inż. Stanisław Polak Przedmiot: Aplikacje internetowe Serwer Node.js Serwer Node.js Node.js Ogólna charakterystyka Udostępnia JavaScript po stronie serwera Używa V8 JavaScript Engine System do tworzenia serwisów sieciowych z asynchronicznym WE/WY Wykorzystuje paradygmat programowania sterowanego zdarzeniami Nadaje się dobrze do pisania aplikacji, które wymagają komunikacji w czasie rzeczywistym pomiędzy przeglądarką a serwerem Pojedyncza instancja Node.js działa jako pojedynczy wątek Pętla zdarzeń podmiot, który obsługuje / przetwarza zdarzenia zewnętrzne i konwertuje je na wywołania funkcji zwrotnych. Rysunek: Schemat działania pętli zdarzeń w Node.js Przykład Hello World 1 #!/usr / bin / node console. log ( " Hello World " ) ; Uruchamianie skryptu $ node hello.js Hello World Uruchamianie trybu interaktywnego $ node > console.log("hello World") Hello World undefined > + > ^D $ hello.js Uruchamianie skryptu $ chmod 755 hello.js $./hello.js Hello World Dr inż. Stanisław Źródło: Polak 3 Przedmiot: Aplikacje internetowe Dr inż. Stanisław Polak Przedmiot: Aplikacje internetowe
2 Serwer Node.js Serwer Node.js Wprowadzanie i wyprowadzanie danych 1 process. stdout. write ( 1 ) ; process. stdout. write ( ) ; 3 console. log ( 3 ) 5 / 6 c o n s o l e. l o g = f u n c t i o n (d) { 7 p r o c e s s. s t d o u t. w r i t e ( d + \n ) ; 8 }; 9 / process. stdin. setencoding ( utf8 ) ; 1 process. stdout. write ( Wprowad ź dane - naci śnięcie ^D koń czy ich wprowadzanie \n ) ; 13 process. stdin. on ( readable, function ( ) { 1 var chunk = process. stdin. read ( ) ; 15 if ( chunk!== null ) { 16 process. stdout. write ( Wczytano : + chunk ) ; 17 } 18 }) ; 19 console.log(ósiągnięto koniec skryptu ) ; Uruchamianie $ node skrypt.js 13 Wprowadź dane - naciśnięcie ^D kończy ich wprowadzanie Osiągnięto koniec skryptu abc Wczytano: abc def Wczytano: def skrypt.js Dostęp do zmiennych środowiskowych, obsługa linii komend 1 // Odczyt warto ś c i zmiennej ś rodowiskowej HOME console. log ( "Twój katalog domowy to: "+process. env [ HOME ] ) ; 3 //Wyś w i e t l e n i e warto ś c i argument ów l i n i i komend 5 console. log ( " Argumenty linii komend to:" ) ; 6 process. argv. foreach ( function ( wartosc, indeks, tablica ) { 7 console. log ( \t +indeks + : + wartosc ) ; 8 }) ; Uruchamianie $ node skrypt.js 1 b= Twój katalog domowy to: /home/polak Argumenty linii komend to: 0: node 1: /home/polak/skrypt.js : 1 3: b= skrypt.js Dr inż. Stanisław Polak 5 Przedmiot: Aplikacje internetowe Dr inż. Stanisław Polak 6 Przedmiot: Aplikacje internetowe Serwer Node.js Serwer Node.js Moduł Tworzenie, korzystanie 1 var mymodule = require( mojmodul ) ; // za ł aduje node modules /mojmodul. js // v a r mymodule = require (. / mojmodul ) ; // za ł a d u j e. / mojmodul. j s 3 console. log ( mymodule. zmienna1 ) ; // u n d e f i n e d console. log ( mymodule. zmienna ) ; // 5 console. log ( mymodule. zmienna3 ) ; // u n d e f i n e d 6 console. log ( mymodule. zmienna ) ; // 7 console. log ( mymodule. fun1 ( ) ) ; // fun1 8 console. log ( mymodule. fun ( ) ) ; // TypeError : Object #<Object> has no method fun skrypt.js Obsługa pakietów $ npm install nazwa_pakietu # Moduły ->./node modules/ # Pliki wykonywalne ->./node modules/.bin/ # Manuale -> nie są instalowane 1 console. log ( require. main === module ) ; / Wypisze : true, je ż e l i skrypt uruchomimy bezpo ś r e d n i o ( z l i n i i komend ), t j $ node mojmodul. j s 3 Wypisze : false, je ż e l i go zaimportujemy z poziomu innego skryptu, t j. require ( mojmodul ) 5 / 6 zmienna1 = 1 ; 7 exports. zmienna = ; 8 var zmienna3 = 3 ; 9 var zmienna ; 10 exports. zmienna = ; 11 var exports. zmienna5 = 5 ; // SyntaxError : Unexpected token. 1 exports. fun1 = function ( ) { 13 return "fun1 " ; 1 }; 15 fun = function ( ) { 16 return "fun " ; 17 }; node modules/mojmodul.js $ npm install -g nazwa_pakietu Dr inż. Stanisław # Moduły Polak -> {prefix}/lib/node modules/ 7 Przedmiot: Aplikacje internetowe # Pliki wykonywalne -> {prefix}/bin/ # Manuale -> {prefix}/share/man/ Obsługa plików 1 var fs = require ( "fs" ) ; // Sprawd ź czy p l i k i s t n i e j e 3 try{ fs. accesssync( plik.txt ) ; } catch ( err ){ fs. writefilesync( plik.txt, 1 ) ; } 5 fs. readfile( plik.txt, utf -8, function ( error, data ) { 6 if ( error ) throw error ; 7 console. log ( " Odczytana wartość: "+ data ) ; 8 }) ; 9 10 fs. writefile( plik. txt,, function ( error ) { 11 if ( error ) throw error ; 1 console. log ( Zapisano wartość ) ; 13 }) ; Uruchamianie $ node skrypt1.js Zapisano wartość Odczytana wartość: Wersja nieprawidłowa 1 var fs = require ( "fs" ) ; try{ fs. accesssync ( plik.txt ) } 3 catch ( err ){ fs. writefilesync ( plik.txt, 1 ) ; } 5 fs. readfile ( plik. txt, utf -8, function ( error, data ) { 6 if ( error ) throw error ; 7 console. log ( " Odczytana wartość: "+data ) ; 8 9 fs. writefile ( plik. txt,, function ( error ) { 10 if ( error ) throw error ; 11 console. log ( Zapisano wartość ) ; 1 }) ; 13 }) ; Uruchamianie $ node skrypt.js Odczytana wartość: 1 Zapisano wartość Wersja prawidłowa Dr inż. Stanisław Polak 8 Przedmiot: Aplikacje internetowe
3 Serwer Node.js Serwer Node.js Obsługa bazy danych SQLite 3 1 var sqlite3 = require ( sqlite3 ) ; 3 var db = new sqlite3. Database ( : memory : ) ; //Zwraca obiekt Database 5 db. serialize( function ( ) { 6 db. run( "CREATE TABLE products (info TEXT )" ) ; 7 var stmt = db. prepare( "INSERT INTO products VALUES (?) " ) ; //Zwraca obiekt Statement 8 for ( var i = 0 ; i < ; i++) { 9 stmt. run( " Produkt " + i ) ; 10 } 11 stmt. finalize ( ) ; 1 13 jsondata = { products : [ ] }; 1 db. each( "SELECT rowid AS id, info FROM products ", function ( err, row ) { 15 jsondata. products. push ({ id : row. id, info : row. info }) ; 16 }, function ( ) { 17 console. log ( JSON. stringify ( jsondata ) ) ; //JSON. s t r i n g i f y wbudowana f u n k c j a JS 18 } 19 ) ; 0 }) ; 1 db. close ( ) ; Instalacja i uruchamianie bd.js $ npm install sqlite3 $ node bd.js {"products":[{"id":1,"info":"produkt 0"},{"id":,"info":"Produkt 1"}]} Dr inż. Stanisław Polak 9 Przedmiot: Aplikacje internetowe Tworzenie dodatków (addons) w C++ Przykład Hello World 1 / Poniż szy program jest odpowiednikiem nast ę pującego kodu JS : 3 e x p o r t s. h e l l o = f u n c t i o n ( ) { r e t u r n world ; }; / 5 6 #include <node. h> 7 8 using namespace v8 ; 9 10 void Method ( const FunctionCallbackInfo<Value>& args ) { 11 Isolate isolate = Isolate : : GetCurrent ( ) ; 1 HandleScope scope ( isolate ) ; 13 args. GetReturnValue ( ). Set ( String : : NewFromUtf8 ( isolate, " world " ) ) ; 1 } void init ( Handle<Object> exports ) { 17 NODE_SET_METHOD ( exports, " hello ", Method ) ; 18 } 19 0 NODE_MODULE ( hello, init ) // t u t a j n i e ma ś r e d n i k a hello.cc Instalacja programu node-gyp $ npm install -g node-gyp 1 { " targets " : [ 3 { "target_name " : "hello ", 5 " sources " : [ " hello.cc" ] 6 } 7 ] 8 } binding.gyp 1 var addon = require (./ build / Release / hello ) ; console. log ( addon. hello ( ) ) ; hello.js Kompilacja i uruchomienie $ node-gyp configure $ node-gyp build $ node hello.js world Materiały dla studentów Informatyki WSZiB w Krakowie Dr inż. Stanisław Polak 10 Przedmiot: Aplikacje internetowe Obsługa protokołu HTTP Serwer Node.js Obsługa protokołu HTTP Szkielet skryptu 1 var http = require ( " http " ) ; 3 function requestlistener (request, response) { console. log ( "Pojawi ło się żą danie od klienta " ) ; 5 response. writehead (00, {"Content -Type " : "text / plain "}) ; 6 response. write ( " Hello World " ) ; 7 response. end ( ) ; 8 } 9 var serwer = http. createserver ( requestlistener ) ; 10 serwer. listen (8080) ; 11 console. log ( "Uruchomiono serwer " ) ; serwer.js Sprawdzenie działania Z poziomu terminala $ node serwer.js & Uruchomiono serwer $ curl Pojawiło się żądanie od klienta Hello World 1 var http = require ( " http " ) ; 3 http. createserver ( function ( request, response ) { console. log ( "Pojawi ło się żą danie od klienta " ) ; 5 response. writehead ( 00, {"Content -Type " : "text / plain "}) ; 6 response. write ( " Hello World " ) ; 7 response. end ( ) ; 8 }). listen (8080) ; 9 console. log ( "Uruchomiono serwer " ) ; Wersja alternatywna Rysunek: Z poziomu przeglądarki WWW Obsługa protokołu HTTP Serwer Node.js Obsługa parametrów URL 1 var url = require ( " url " ) ;... 3 function requestlistener ( request, response ) { console. log ( "Pojawi ło się żą danie od klienta " ) ; 5 var url_parts = url. parse ( request. url, true ) ; // Pass t r u e as t h e second argument to a l s o p a r s e the query string using the querystring module. Defaults to f a l s e. 6 console. log ( url_parts ) ; 7 8 response. writehead ( 00, {"Content -Type " : "text /plain "}) ; 9 response. write ( \n ) ; 10 response. write ( url_parts. pathname+ \n ) ; 11 response. write ( Login : +url_parts. query [ login ]+ \n ) ; 1 response. write ( Has ło: +url_parts. query [ haslo ]+ \n ) ; 13 response. end ( ) ; 1 } Terminal 1 $ node serwer.js Uruchomiono serwer Pojawiło się żądanie od klienta {... search:?login=jan&haslo=kowalski+%8nowak%9, query: { login: Jan, haslo: Kowalski (Nowak) }, pathname: /abc, path: /abc?login=jan&haslo=kowalski+%8nowak%9, href: /abc?login=jan&haslo=kowalski+%8nowak%9 } serwer.js Terminal $ curl Kowalski+%8Nowak%9 /abc Jan Kowalski (Nowak) Dr inż. Stanisław Polak 11 Przedmiot: Aplikacje internetowe Dr inż. Stanisław Polak 1 Przedmiot: Aplikacje internetowe
4 Obsługa protokołu HTTP Serwer Node.js Obsługa formularzy Kodowanie application/x-www-form-urlencoded 1 var qs = require ( querystring ) ;... 3 function requestlistener ( request, response ) { var url_parts = url. parse ( request. url, true ) ; 5 if ( url_parts. pathname == /form ){ // g e n e r o w a n i e f o r m u l a r z a 6 response. writehead (00, {"Content -Type " : "text /html "}) ; 7 response. write ( <form method ="POST " action ="/ submit "> ) ; 8 response. write ( <input name =" login " value =" Jan "> ) ; 9 response. write ( <input name =" haslo " value =" Kowalski ( Nowak ) ąę"> ) ; 10 response. write ( <input type =" submit "> ) ; 11 response. write ( </form > ) ; 1 response. end ( ) ; 13 } 1 if ( url_parts. pathname == /submit ) { // przetwarzanie zawarto ś ci formularza 15 if ( request. method== GET ) { 16 response. writehead ( 00, {"Content -Type " : "text /plain "}) ; 17 response. write ( url_parts. query [ login ]+ \n ) ; // przegl ądarka wypisze : Jan\n 18 response. write ( url_parts. query [ haslo ]+ \n ) ; // przegl ądarka wypisze : Kowalski (Nowak ) ąę \n 19 response. end ( ) ; 0 } 1 else if ( request. method== POST ) { var body= ; 3 request. on( data, function ( data ) { body +=data ; 5 }) ; 6 request. on( end, function ( ){ 7 var data = qs. parse( body ) ; //body z a w i e r a l o g i n=jan&h a s l o=k o w a l s k i+%8nowak%9+%c%85% C%99 8 response. writehead ( 00, {"Content -Type " : "text /plain "}) ; 9 response. write ( data [ login ]+ \n ) ; // przegl ądarka wypisze : Jan\n 30 response. write ( data [ haslo ]+ \n ) ; // przegl ądarka wypisze : Kowalski (Nowak ) ąę\n 31 response. end ( ) ; 3 }) ; 33 } 3 } 35 } Dr inż. 36 Stanisław... Polak 13 Przedmiot: Aplikacje internetowe Obsługa protokołu HTTP Serwer Node.js Obsługa protokołu CGI 1 #! / b i n / sh echo "Content -Type : text / plain " 3 echo echo " Skrypt CGI wywo ł ano z argumentem $QUERY_STRING " hello.cgi Instalacja i uruchamianie $ npm install cgi $ chmod 755 hello.cgi $ node skrypt.js & $ curl Skrypt CGI wywołano z argumentem $ curl Skrypt CGI wywołano z argumentem abc 1 var cgi = require ( cgi ) ; var http = require ( http ) ; 3 var path = require ( path ) ; 5 var script = path. resolve ( hello.cgi ) ; 6 7 http. createserver ( cgi ( script ) ). listen ( 8080) ; skrypt.js Dr inż. Stanisław Polak 1 Przedmiot: Aplikacje internetowe Obsługa protokołu HTTP Serwer Node.js Framework Express Wolnostojący serwer WWW Express Ogólna charakterystyka Instalacja i uruchamianie $ npm install http-server -g $ http-server -h usage: http-server [path] [options] options: -p Port to use [8080] -a Address to use [ ] -d Show directory listings [true] -i Display autoindex [true] -e --ext Default file extension if none supplied [none] -s --silent Suppress log messages from output -h --help Print this list and exit. -c Set cache time (in seconds). e.g. -c10 for 10 seconds. To disable caching, use -c-1. $ http-server Starting up http-server, serving./ on port: 8080 Hit CTRL-C to stop the server Najpopularniejszy framework do tworzenia aplikacji WWW Inspirowany projektem Ruby Sinatra Moduł node.js instalacja npm install -g express API oparte na JSON Dr inż. Stanisław Polak 15 Przedmiot: Aplikacje internetowe Dr inż. Stanisław Polak 16 Przedmiot: Aplikacje internetowe
5 Aplikacja Hello World 1 Framework Express Użyte narzędzia oraz języki Aplikacja Hello World 1 Framework Express Tworzenie szkieletu aplikacji 1 $ mkdir MySite $ cd MySite 3 $ vi package. json $ npm install #i n s t a l o w a n i e z a l e ż no ś c i Jade System szablonów Treść szablonu jest tłumaczona na HTML CSS 1 { " name " : " MySite ", 3 " version " : " ", " private " : " true ", 5 " dependencies " : { 6 " express " : "*", 7 " jade " : "*", 8 " morgan " : "*" 9 } 10 } package.json Dr inż. Stanisław Polak 17 Przedmiot: Aplikacje internetowe Dr inż. Stanisław Polak 18 Przedmiot: Aplikacje internetowe Aplikacja Hello World 1 Framework Express Główny plik aplikacji 1 var express = require ( express ), logger = require ( morgan ) ; 3 var app = express ( ) ; 5 var router = express. Router ( ) ; 6 app. set ( views, dirname + / views ) ; 7 app. set ( view engine, jade ) ; 8 app. use ( logger ( dev ) ) ; 9 app. use ( express. static ( dirname + / public ) ) ; 10 router. get ( /, function ( req, res ) { 11 res. render ( index, 1 { title : Home } 13 ) 1 }) ; 15 app. use ( /, router ) ; 16 app. listen (3000) ; app.js Dr inż. Stanisław Polak 19 Przedmiot: Aplikacje internetowe Aplikacja Hello World 1 Framework Express Pliki Jade 1 extend layout block content 3 p Witaj Świecie 5 Witaj Świecie 6 p 7 Witaj Świecie 8 block sidebar 9. widget 10 h1 Widget 11 p 1 Tre ś ć ramki views/index.jade 1 doctype html html 3 head title #{title} My Site 5 link ( rel= stylesheet, href= / stylesheets / style.css ) 6 body 7 header 8 h1 My Site 9. container 10. main content 11 block content 1. sidebar 13 block sidebar 1 footer 15 p Running on node with Express, Jade and Stylus views/layout.jade Materiały dla studentów Informatyki WSZiB w Krakowie Dr inż. Stanisław Polak 0 Przedmiot: Aplikacje internetowe
6 Aplikacja Hello World 1 Framework Express Plik CSS Aplikacja Hello World 1 Framework Express Uruchamianie aplikacji 1 $ node app GET / ms b 3 GET / stylesheets / style. css ms.6 kb 1 body {... 3 }. widget { } 7... public/stylesheets/style.css Dr inż. Stanisław Polak 1 Przedmiot: Aplikacje internetowe Dr inż. Stanisław Polak Przedmiot: Aplikacje internetowe Aplikacja Hello World Framework Express Polecenie express Aplikacja Hello World Framework Express Generowanie aplikacji Hello World Użycie polecenia express 1 $ npm install g express generator $ express help 3 Usage : express [ options ] [ dir ] 5 Options : 6 7 h, help output usage information 8 V, version output the version number 9 e, ejs add ejs engine support ( defaults to jade ) 10 hbs add handlebars engine support 11 H, hogan add hogan. js engine support 1 c, css <engine> add stylesheet <engine> support ( less stylus compass ) ( defaults to plain css ) 13 f, force force on non empty directory 1 $ express MySite create : MySite 3 create : MySite / package. json create : MySite / app. js 5 create : MySite / public 6 create : MySite / public / javascripts 7 create : MySite / public / images 8 create : MySite / public / stylesheets 9 create : MySite / public / stylesheets / style. css 10 create : MySite / routes 11 create : MySite / routes / index. js 1 create : MySite / routes / users. js 13 create : MySite / views 1 create : MySite / views / index. jade 15 create : MySite / views / layout. jade 16 create : MySite / views / error. jade 17 create : MySite / bin 18 create : MySite / bin / www 19 0 install dependencies : 1 $ cd MySite && npm install 3 run the app : $ DEBUG=MySite : npm start Dr inż. Stanisław Polak 3 Przedmiot: Aplikacje internetowe Dr inż. Stanisław Polak Przedmiot: Aplikacje internetowe
7 Aplikacja Hello World Framework Express Plik package.json Aplikacja Hello World Framework Express Główny plik aplikacji app.js 1 { " name " : " MySite ", 3 " version " : " ", " private " : true, 5 " scripts " : { 6 " start " : " node./ bin / www " 7 }, 8 " dependencies " : { 9 "body - parser " : " ~1.13. ", 10 " cookie - parser " : " ~1.3.5 ", 11 " debug " : " ~..0 ", 1 " express " : " ~.13.1 ", 13 " jade " : " ~ ", 1 " morgan " : " ~1.6.1 ", 15 "serve - favicon " : " ~.3.0 " 16 } 17 } var routes = require (./ routes / index ) ; 3 var users = require (./ routes / users ) ; 5 var app = express ( ) ; app. use ( /, routes ) ; 8 app. use ( / users, users ) ; 9... Dr inż. Stanisław Polak 5 Przedmiot: Aplikacje internetowe Dr inż. Stanisław Polak 6 Przedmiot: Aplikacje internetowe Aplikacja Hello World Framework Express Pliki z definicją tras Aplikacja Hello World Framework Express Pozostałe (wygenerowane) pliki 1 var express = require ( express ) ; var router = express. Router ( ) ; 3 / GET home page. / 5 router. get ( /, function ( req, res ) { 6 res. render ( index, { title : Express }) ; 7 }) ; 8 9 module. exports = router ; 1 extends layout 3 block content h1= title 5 p Welcome to #{title} views/index.jade 1 doctype html html 3 head title= title 5 link ( rel= stylesheet, href= / stylesheets / style.css ) 6 body 7 block content views/layout.jade 1 var express = require ( express ) ; var router = express. Router ( ) ; 3 / GET u s e r s l i s t i n g. / 5 router. get ( /, function ( req, res ) { 6 res. send ( respond with a resource ) ; 7 }) ; 8 9 module. exports = router ; routes/index.js routes/user.js 1 body { padding : 50 px ; 3 font : 1 px " Lucida Grande ", Helvetica, Arial, sans serif ; } 5 6 a { 7 color : #00B7FF ; 8 } 1 $ cd MySite && npm install $ npm start public/stylesheets/style.css Instalowanie zależności i uruchamianie aplikacji Dr inż. Stanisław Polak 7 Przedmiot: Aplikacje internetowe Dr inż. Stanisław Polak 8 Przedmiot: Aplikacje internetowe
8 Aplikacja Hello World 3 Framework Express MongoDB Ogólna charakterystyka Nierelacyjna baza danych zorientowana dokumentowo Dobrze skalowana Szybka Nie posiada sztywnych schematów danych Podstawowe pojęcia Kolekcja odpowiednik tabeli w relacyjnej bazie danych Dokument odpowiednik wiersza w relacyjnej bazie danych Rysunek: Przykładowy dokument Dr inż. Stanisław Polak 9 Przedmiot: Aplikacje internetowe Aplikacja Hello World 3 Framework Express Model danych w MongoDB Referencje Osadzane dokumenty Materiały dla studentów Informatyki WSZiB w Krakowie Dr inż. Stanisław Polak 30 Przedmiot: Aplikacje internetowe Aplikacja Hello World 3 Framework Express Instalowanie zależności Aplikacja Hello World 3 Framework Express Tworzenie zawartości bazy danych 1 $ vi package. json $ npm install #i n s t a l o w a n i e z a l e ż no ś c i " dependencies " : { 3... " monk " : "*" 5 } 6... package.json 1 $ mongo MongoDB shell version : connecting to : test > use bazatestowa1 5 switched to db bazatestowa1 6 > db. datacollection. insert ({ " title " : " Express & Mongo " }) 7 > db. datacollection. insert ({ " title " : " Express " }) 8 > db. datacollection. find ( ) 9 { " _id " : ObjectId ( "5 f8bb757bade7ec7171 " ), " title " : " Express & Mongo " } 10 { " _id " : ObjectId ( "5 f8bd07bade7ec717 " ), " title " : " Express " } 11 > db. datacollection. find ({ " title " : " Express " }) 1 { " _id " : ObjectId ( "5 f8bd07bade7ec717 " ), " title " : " Express " } Dr inż. Stanisław Polak 31 Przedmiot: Aplikacje internetowe Dr inż. Stanisław Polak 3 Przedmiot: Aplikacje internetowe
9 Aplikacja Hello World 3 Framework Express Modyfikacje var bodyparser = require ( body - parser ) ; 3 //Nowy kod var monk = require ( monk ) ; 5 var db = monk ( localhost :7017/ bazatestowa1 ) ; //Nowy kod 8 app. use ( function ( req, res, next ){ 9 req. db = db ; 10 next ( ) ; 11 }) ; 1 // I s t n i e j ą cy kod 13 app. use ( /, routes ) ; 1 app. use ( / users, users ) ; app.js router. get ( / titles, function ( req, res ) { 3 var db = req. db ; var collection = db. get ( datacollection ) ; 5 collection. find ({},{}, function ( e, docs ){ 6 res. render ( titlelist, { 7 " titlelist " : docs 8 }) ; 9 }) ; 10 }) ; 11 1 module. exports = router ; routes/index.js AngularJS Ogólna charakterystyka Wydajny, darmowy framework do tworzenia dynamicznych aplikacji WWW Korzysta z MVC Zgodność aplikacji AngulsJS z różnymi przeglądarkami Pozwala używać HTML jako język szablonów Rozszerza HTML o dodatkowe atrybuty i znaczniki 1 extends layout 3 block content h1 Tytu ł y 5 ul 6 each element in titlelist 7 li #{element. title} views/titlelist.jade Dr inż. Stanisław Polak 33 Przedmiot: Aplikacje internetowe Dr inż. Stanisław Polak 3 Przedmiot: Aplikacje internetowe Główne cechy Dwukierunkowe wiązanie danych Zasięgi Kontrolery Usługi Filtry Dyrektywy Szablony Routing Model View Whatever (MVW) Głębokie linkowanie Wstrzykiwanie zależności Dr inż. Stanisław Polak 35 Przedmiot: Aplikacje internetowe Zalety i wady AngularJS Zalety Zapewnia możliwość tworzenia pojedynczej strony aplikacji w bardzo zgrabny oraz kontrolowany sposób Zapewnia możliwość wiązania danych HTML, co wzbogaca doznania użytkownika serwisu Kod może być testowany w oparciu o mechanizm testów jednostkowych Wykorzystuje wstrzykiwanie zależności oraz pozwala na korzystanie z separacji zagadnień Zapewnia komponenty wielokrotnego użytku Deweloperzy mogą osiągnąć większą funkcjonalność z krótszego kodu Widoki są czystymi stronami HTML, a kontrolerzy napisane w JavaScript wykonują przetwarzania Wady Dr inż. Stanisław Polak 36 Przedmiot: Aplikacje internetowe Stworzone aplikacje nie są bezpieczne Nie działa gdy użytkownik wyłączy obsługę JS
10 Aplikacja Hello World Przykład użycia wzorca MVC 1 <! doctype html> <html> 3 <head> <meta charset="utf -8"> 5 <script src=" https :// ajax. googleapis. com / ajax / libs / angularjs /1..3/ angular.min.js"></ script> 6 </ head> 7 <body ng-app=" myapp "> 8 <! Widok > 9 <div ng-controller="hellocontroller " > 10 <h1>"{{message.hello}} {{message.world}}" mówi AngularJS</ h1> 11 </ div> 1 <! Kontroler > 13 <script> 1 angular. module ( " myapp ", [ ] ) 15. controller( " HelloController ", function ($scope) { 16 $scope.message = { 17 hello : " Witaj ", 18 world : "Ś wiecie " 19 }; 0 }) ; 1 </ script> </ body> 3 </ html> Witaj Świecie mówi AngularJS Etapy ładowania dokumentu HTML 1. Ewaluacja dokumentu HTML. Tworzonie obiektu globalnego angular 3. Rejestracja funkcji kontrolera. Skanowanie HTML 5. Łączenie widoku z odpowiednią funkcją kontrolera 6. Wykonywanie funkcji kontrolera 7. Renderowanie widoku Najważniejsze dyrektywy Przykład użycia wzorca MVVM <body> 3 <div ng-app=""> <p>wprowad ź swoje imi ę : <input type=" text " ng-model=" imie "></p> 5 <p>witaj <span ng-bind=" imie "></ span>!</p> 6 </ div> 7 </ body> 8... Wprowadź swoje imię: Stan Witaj Stan! Dr inż. Stanisław Polak 37 Przedmiot: Aplikacje internetowe Dr inż. Stanisław Polak 38 Przedmiot: Aplikacje internetowe Wyświetlanie danych złożonych <div ng app="" ng-init=" miasta =[{ kierunkowy :1, nazwa : Kraków },{ kierunkowy :, nazwa : Warszawa }] "> 3 <h1>lista numer ów kierunkowych</h1> <ul> 5 <li ng-repeat=" miasto in miasta "> 6 {{"Nr kierunkowy : "+miasto. kierunkowy+", miasto : "+ miasto. nazwa }} 7 </li> 8 </ul> 9 </ div> Lista numerów kierunkowych Nr kierunkowy: 1, miasto: Kraków Nr kierunkowy:, miasto: Warszawa Dr inż. Stanisław Polak 39 Przedmiot: Aplikacje internetowe Wyrażenia <div ng app="" ng i n i t=" ilosc=1; cena =30; student={ id :1, imie : Jan, nazwisko : Kowalski }; oceny =[3.5,.0,.5] "> 3 <! Korzystanie z napis ów > 5 Informacje nt. studenta {{student. imie + " " + student. nazwisko}} 6 <ul> 7 <! K o r z y s t a n i e z o b i e k t u > 8 <li>twój id : {{student. id}} 9 <! K o r z y s t a n i e z l i c z b > 10 <li>wydatki na książki : {{cena ilosc}} z ł 11 <! K o r z y s t a n i e z t a b l i c y > 1 <li>ocena z matematyki : {{oceny [ ] } } 13 </ul> 1 </ div> Informacje nt. studenta Jan Kowalski Twój id: 1 Wydatki na książki : 30 zł Ocena z matematyki:.5 Materiały dla studentów Informatyki WSZiB w Krakowie Dr inż. Stanisław Polak 0 Przedmiot: Aplikacje internetowe
11 Kontrolery Moduły <div ng app=" myapp " ng-controller=" studentcontroller "> 3 Podaj imi ę : <input type=" text " ng model=" student. imie "><br><br> Podaj nazwisko : <input type=" text " ng model=" student. nazwisko "><br> 5 <br> 6 Wprowadzasz : {{student. pelnanazwa ( )}} 7 </ div> 8 <script> 9 angular. module ( " myapp ", [ ] ) 10. controller ( " studentcontroller ", function ($scope) { 11 $scope.student = { 1 imie : " Jan ", 13 nazwisko : " Kowalski ", 1 pelnanazwa : function ( ) { 15 var obiektstudent ; 16 obiektstudent = $scope. student ; 17 return obiektstudent. imie + " " + obiektstudent. nazwisko ; 18 } 19 }; 0 }) ; 1 </ script>... Podaj imię: Jan Podaj nazwisko: Kowalski Wprowadzasz: Jan Kowalski 1 var myapp = angular. module ( " myapp ", [ ] ) ; myapp.js Korzystanie z modułów 1 myapp. controller ( " studentcontroller ", function ( $scope ) { $scope. student = { 3 imie : " Jan ", nazwisko : " Kowalski ", 5 pelnanazwa : function ( ) { 6 var studentobject ; 7 studentobject = $scope. student ; 8 return studentobject. imie + " " + studentobject. nazwisko ; 9 } 10 }; 11 }) ; studentcontroller.js <script src="https ://ajax.googleapis.com /ajax /libs /angularjs /1..3/ angular.min.js"></ script> 3 <script src=" myapp.js"></ script> <script src=" studentcontroller.js"></ script> <div ng app=" myapp " ng c o n t r o l l e r=" studentcontroller "> 7 Podaj imi ę : <input type=" text " ng model=" student. imie "><br><br> 8 Podaj nazwisko : <input type=" text " ng model=" student. nazwisko "><br> 9 <br> 10 Wprowadzasz : {{student. pelnanazwa ( )}} 11 </ div> 1... index.html Dr inż. Stanisław Polak 1 Przedmiot: Aplikacje internetowe Dr inż. Stanisław Polak Przedmiot: Aplikacje internetowe Filtry DOM <body ng app=""> 3 <div ng i n i t=" studenci = [{ imie : Jan, nazwisko : Kowalski }, { imie : Małgorzata, nazwisko : Nowak }, 5 { imie : Anna, nazwisko : Nowak }] "></ div> 6 <label>szukaj : <input ng model=" szukanytekst "></ label> 7 <ul> 8 <! szukanytekst j e s t,, zmienn ą p r z e c h o w u j ą c ą t r e ś ć wprowadzon ą w powy ż szym p o l u <input> > 9 <li ng r e p e a t=" student in studenci filter: szukanytekst ">{{student. nazwisko}} {{student. imie}}</li> 10 </ul> 11 </ body> 1... Szukaj: Kowalski Jan Nowak Małgorzata Nowak Anna index.html Szukaj: Now Nowak Małgorzata Nowak Anna <div ng app=" myapp " ng c o n t r o l l e r=" studentcontroller "> 3 Podaj imi ę : <input type="text " ng model=" student.imie " ng-disabled=" disabletextfield "><br> 5 Podaj nazwisko : 6 <input type="text " ng model=" student. nazwisko " ng-disabled=" disabletextfield "><br > 7 Wprowadzasz : {{student. pelnanazwa ( ) }} 8 <p> 9 <input type=" checkbox " ng model="disabletextfield">dezaktywuj pola tekstowe 10 </p> 11 </ div> 1... index.html Dr inż. Stanisław Polak 3 Przedmiot: Aplikacje internetowe Dr inż. Stanisław Polak Przedmiot: Aplikacje internetowe
12 Walidacja i wypełnianie formularza <div ng app=" myapp " ng c o n t r o l l e r=" studentcontroller "> 3 <form name=" formularz " novalidate> Podaj imi ę : <input name=" imie " type=" text " ng model=" student. imie " required> 5 <span style=" color : red " ng-show=" formularz. imie. $dirty && formularz. imie. $invalid "> 6 <span ng-show=" formularz. imie. $error. required ">Nie poda ł eś imienia</ span> 7 </ span> 8 <br> 9 Podaj nazwisko : <input name=" nazwisko " type=" text " ng model=" student. nazwisko " required> 10 <span style=" color : red " ng-show=" formularz. nazwisko. $dirty && formularz. nazwisko. $invalid "> 11 <span ng-show=" formularz. nazwisko. $error. required ">Nie poda ł eś nazwiska</ span> 1 </ span><br> 13 <button ng c l ic k=" reset ()">Kasuj</ button> 1 <button ng disabled=" formularz. imie. $dirty && formularz. imie. $invalid formularz. nazwisko. $dirty && formularz. nazwisko. $invalid " 15 ng-click=" submit ()">Wy ś lij</ button> 16 </ form> 17 </ div> index.html Wstawki <div ng app=" myapp " ng c o n t r o l l e r=" studentcontroller "> 3 <div ng-include=" imie.html "></ div> <div ng-include=" nazwisko.html "></ div> 5 </ div> 6... index.html 1 Podaj imi ę : <input name=" imie " type=" text " ng model=" student. imie "> imie.html 1 Podaj nazwisko : <input name=" nazwisko " type="text " ng model=" student. nazwisko "> 1 myapp. controller ( " studentcontroller ", function ( $scope ) { $scope. student = { 3 imie :, nazwisko : 5 }; 6 $scope. reset = function ( ) { 7 $scope. student. imie="jan " ; 8 $scope. student. nazwisko="kowalski " ; 9 }; 10 $scope. reset ( ) ; 11 }) ; studentcontroller.js Podaj imię: Podaj nazwisko: nazwisko.html Dr inż. Stanisław Polak 5 Przedmiot: Aplikacje internetowe Dr inż. Stanisław Polak 6 Przedmiot: Aplikacje internetowe Użycia technologii AJAX Przełączalne widoki <div ng app=" myapp " ng c o n t r o l l e r=" studentcontroller "> 3 <ol> <li ng r e p e a t=" student in students ">{{ student. nazwisko}} {{student. imie}}</ li> 5 </ol> 6 </ div> 7... index.html 1 [ { 3 " imie " : " Jan ", " nazwisko " : " Kowalski " 5 }, 6 { 7 " imie " : " Anna ", 8 " nazwisko " : " Nowak " 9 } 10 ] students.json 1 myapp. controller ( " studentcontroller ", function ( $scope, $http ) { $http. get ( "students.json " ). success ( function ( response ) { 3 $scope. students = response ; }) ; 5 }) ; 1. Kowalski Jan. Nowak Anna studentcontroller.js 1 <h>dodaj studenta</h> {{message}} addstudent.html 1 <h>wy ś wietl student ów</h> {{message}} viewstudents.html <script s r c=" https :// ajax. googleapis. com / ajax / libs /angularjs /1..3/ angular -route.min.js"></ script> 3... <div ng app=" myapp "> 5 <p><a href=" #addstudent ">Dodaj Studenta</a></p> 6 <p><a href=" #viewstudents ">Wy ś wietl student ów</a ></p> 7 <div ng-view></ div> 8 </ div> 9 <script> 10 var myapp = angular. module ( " myapp ", [ ngroute ] ) ; 11 1 myapp. config ( [ $routeprovider, 13 function ( $routeprovider ) { 1 $routeprovider. 15 when ( /addstudent, { 16 templateurl : addstudent. html, 17 controller : AddStudentController 18 }). 19 when ( /viewstudents, { 0 templateurl : viewstudents. html, 1 controller : ViewStudentsController }). 3 otherwise ({ redirectto : / addstudent 5 }) ; 6 }]) ; 7 8 myapp. controller ( AddStudentController, function ( $scope ) { 9 $scope. message = "Ta strona bę dzie uż ywana do wyś wietlenia formularza dodawania studenta " ; 30 }) ; 31 3 myapp. controller ( ViewStudentsController, function ( $scope ) { 33 $scope. message = "Ta strona bę dzie uż ywana do wyś wietlania wszystkich student ów" ; 3 }) ; 35 </ script> index.html Dr inż. Stanisław Polak 7 Przedmiot: Aplikacje internetowe Dr inż. Stanisław Polak 8 Przedmiot: Aplikacje internetowe
13 Przełączalne widoki Szablon widoku inline 17 <script> 18 var myapp = angular. module ( " myapp ", [ ngroute ] ) ; 19 0 myapp. config ( [ $routeprovider, 1 function ( $routeprovider ) { $routeprovider. 3 when ( / addstudent, { <script src=" https :// ajax. googleapis. com / ajax / templateurl : addstudent. html, libs /angularjs /1..3/ angular -route.min.js 5 controller : AddStudentController "></ script> 6 }) when ( / viewstudents, { <div ng app=" myapp "> 8 templateurl : viewstudents. html, 5 <p><a href="# addstudent ">Dodaj Studenta</a></p 9 controller : ViewStudentsController > 30 }). 6 <p><a href="# viewstudents ">Wy ś wietl student ów< 31 otherwise ({ /a></p> 3 redirectto : / addstudent 7 <div ng view></ div> 33 }) ; 8 <script type=" text /ng-template" i d=" addstudent. 3 }]) ; html "> 35 9 <h>dodaj studenta</h> 36 myapp. controller ( AddStudentController, 10 {{message}} function ( $scope ) { 11 </ script> 37 $scope. message = "Ta strona bę dzie uż ywana do 1 <script type=" text /ng-template" i d=" viewstudents wyś wietlenia formularza dodawania. html "> studenta " ; 13 <h>wy ś wietl student ów</h> 38 }) ; 1 {{message}} </ script> 0 myapp. controller ( ViewStudentsController, 16 </ div> function ( $scope ) { 1 $scope. message = "Ta strona bę dzie uż ywana do wyś wietlania wszystkich student ów" ; }) ; 3 </ script> index.html Dr inż. Stanisław Polak 9 Przedmiot: Aplikacje internetowe Zasięgi <div ng app=" mainapp " ng controller=" shapecontroller "> 3 <! Widok > <p>{{message}} <br/> {{type}} </p> 5 <div ng controller=" circlecontroller "> 6 <p>{{message}} <br/> {{type}} </p> 7 </div> 8 <div ng controller=" squarecontroller "> 9 <p>{{message}} <br/> {{type}} </p> 10 </div> 11 </div> 1 <script> 13 var mainapp = angular. module ( " mainapp ", [ ] ) ; 1 mainapp. controller ( " shapecontroller ", function ($scope) { 15 $scope.message = "W kontrolerze kszta łtu" ; 16 $scope.type = "Kszta łt" ; 17 }) ; mainapp. controller ( " circlecontroller ", function ( $scope ) { 0 $scope.message = "W kontrolerze okr ęgu" ; 1 }) ; 3 mainapp. controller ( " squarecontroller ", function ( $scope ) { $scope.message = "W kontrolerze kwadratu " ; 5 $scope.type = "Kwadrat " ; 6 }) ; 7 </script> 8... W kontrolerze kształtu Kształt W kontrolerze okręgu Kształt W kontrolerze kwadratu Kwadrat Materiały dla studentów Informatyki WSZiB w Krakowie Dr inż. Stanisław Polak 50 Przedmiot: Aplikacje internetowe Tworzenie własnych usług Kontrolery są tworzone w ramach tego jak są potrzebne i usuwane, gdy przestają być używane Usługa to zwykły obiekt, który ma za zadanie wykonać jakąś pracę Usługi są tworzone jednorazowo (jako singletony) i mogą być wstrzykiwane jako zależność do wielu kontrolerów Nazwy usług wbudowanych rozpoczynają się od znaku $ nazwy naszych własnych serwisów nie powinny rozpoczynać się od znaku $ Dlaczego warto używać własnych usług? Jesteśmy w stanie podzielić kod na mniejsze logiczne fragmenty Taki kod może być użyty wielokrotnie w naszej aplikacji Zasada pojedynczej odpowiedzialności nigdy nie powinno być więcej niż jednego powodu do modyfikacji klasy Wstrzykiwanie zależności usługi można wstrzykiwać do naszych kontrolerów lub innych usług Łatwiejsze testowanie mniejszy kod łatwiej się testuje Typy usług: Wartość Fabryka Serwis Dostawca Stała Dr inż. Stanisław Polak 51 Przedmiot: Aplikacje internetowe Tworzenie usługi typu Wartość 1 // Definiowanie warto ś c i var mymodule = angular. module ( " mymodule ", [ ] ) ; 3 mymodule. value( " numbervalue ", 999) ; mymodule. value( " stringvalue ", "abc " ) ; 5 mymodule. value( " objectvalue ", { val1 : 13, val : "abc "} ) ; 6 7 // W s t r z y k i w a n i e warto ś c i do k o n t r o l e r a 8 mymodule. controller ( " MyController ", function ( $scope, numbervalue ) { 9 console. log ( numbervalue ) ; // Wypisze : }) ; Dr inż. Stanisław Polak 5 Przedmiot: Aplikacje internetowe
14 Tworzenie usługi typu Fabryka Tworzenie usługi typu Serwis 1 var mymodule = angular. module ( " mymodule ", [ ] ) ; 3 // Definiowanie warto ś c i mymodule. value ( " numbervalue ", 999) ; 5 6 // W s t r z y k i w a n i e warto ś c i do f a b r y k i 7 mymodule. factory( " myfactory ", function ( numbervalue ) { 8 return "a value : " + numbervalue ; 9 }) ; // W s t r z y k i w a n i e f a b r y k i do k o n t r o l e r a 1 mymodule. controller ( " MyController ", function ( $scope, myfactory ) { 13 console. log ( myfactory ) ; // Wypisze : a v a l u e }) ; 1 var mymodule = angular. module ( " mymodule ", [ ] ) ; 3 mymodule. value ( " myvalue ", " 135 " ) ; 5 // Wstrzykiwanie warto ś c i do serwisu 6 function MyService ( myvalue ) { 7 this. doit = function ( ) { 8 console. log ( " done : " + myvalue ) ; 9 } 10 } 11 1 mymodule. service( " myservice ", MyService ) ; 13 //Wewnę t r z n i e j e s t wykonywane : v a r t h e S e r v i c e = new MyService ( ) ; 1 15 // W s t r z y k i w a n i e s e r w i s u do k o n t r o l e r a 16 mymodule. controller ( " MyController ", function ( $scope, MyService ) { 17 myservice. doit ( ) ; // Wypisze : done : }) ; Dr inż. Stanisław Polak 53 Przedmiot: Aplikacje internetowe Dr inż. Stanisław Polak 5 Przedmiot: Aplikacje internetowe Tworzenie usługi typu Dostawca Tworzenie usługi typu Stała 1 var mymodule = angular. module ( " mymodule ", [ ] ) ; 3 mymodule. provider( " mysecondservice ", function ( ) { var provider = {}; 5 6 // D e f i n i o w a n i e dostawcy 7 provider. $get = function ( ) { 8 var service = {}; 9 10 service. doservice = function ( ) { 11 console. log ( " mysecondservice : Service Done!" ) ; 1 } 13 return service ; 1 } 15 return provider ; 16 }) ; // W s t r z y k i w a n i e dostawcy do k o n t r o l e r a 19 mymodule. controller ( " MyController ", function ( $scope, mysecondservice) { 0 mysecondservice. doservice ( ) ; // Wypisze : mysecondservice : Se r vi c e Done! 1 }) ; 1 var mymodule = angular. module ( " mymodule ", [ ] ) ; 3 mymodule. provider ( " mysecondservice ", function ( ) { var provider = {}; 5 var config = { configparam : " default " }; 6 7 provider. doconfig = function ( configparam ) { 8 config. configparam = configparam ; 9 } provider. $get = function ( ) { 1 var service = {}; 13 1 service. doservice = function ( ) { 15 console. log ( " mysecondservice : " + config. configparam ) ; 16 } return service ; 19 } 0 1 return provider ; }) ; 3 mymodule. constant( "configvalue ", "constant config value " ) ; 5 mymodule. config( function ( mysecondserviceprovider, configvalue ) { 6 mysecondserviceprovider. doconfig ( configvalue ) ; 7 }) ; 8 9 mymodule. controller ( " MyController ", function ( $scope, mysecondservice ) { 30 mysecondservice. doservice ( ) ; // Wypisze : mysecondservice : c o n s t a n t c o n f i g v a l u e 31 }) ; Dr inż. Stanisław Polak 55 Przedmiot: Aplikacje internetowe Dr inż. Stanisław Polak 56 Przedmiot: Aplikacje internetowe
15 Definiowanie własnej usługi Przykład Minimalizacja kodu JS a wstrzykiwanie zależności Wersja oryginalna 1 myapp. controller ( " studentcontroller ", function ( $scope, $http ) { $http. get ( "students.json " ). success ( function ( response ) { 3 $scope. students = response ; }) ; 5 }) ; Wersja zmodyfikowana studentcontroller.js 1 myapp. factory ( " studentsfactory ", function ( $http ) { return $http. get ( "students.json " ) ; 3 }) ; 5 myapp. controller ( " studentcontroller ", function ( $scope, studentsfactory ) { 6 $scope. students = studentsfactory. success ( function ( response ) { 7 $scope. students = response ; 8 }) ; 9 }) ; studentcontroller.js Wersja niezalecana 1 myapp. controller ( " studentcontroller ", function ( $scope, $http ) { $http. get ( " students.json " ). success ( function ( response ) { 3 $scope. students = response ; }) ; 5 }) ; 1 myapp. controller ( " studentcontroller ", function ( t, n ){n. get ( " students. json " ). success ( function ( n ){t. students= n }) }) ; Wersja zminimalizowana Wersja zalecana 1 myapp. controller ( " studentcontroller ", [ 3 $scope, $http, 5 function( $scope, $http ) { 6 $http. get ( " students.json " ). success ( function ( response ) { 7 $scope. students = response ; 8 }) ; 9 }]) ; 1 myapp. controller ( " studentcontroller ", [ " $scope ", " $http ", function ( t, n ){n. get ( " students. json " ). success ( function ( n ){t. students=n }) } ] ) ; Wersja zminimalizowana Dr inż. Stanisław Polak 57 Przedmiot: Aplikacje internetowe Dr inż. Stanisław Polak 58 Przedmiot: Aplikacje internetowe Definiowanie niestandardowych dyrektyw <div ng app=" myapp " ng c o n t r o l l e r=" StudentController "> 3 <s t u d e n t i n f o s t u d e n t=" kowalski "></ s t u d e n t i n f o> <s t u d e n t i n f o s t u d e n t=" nowak "></ s t u d e n t i n f o> 5 </ div> 6 7 <script> 8 myapp = angular. module ( " myapp ", [ ] ) ; 9 10 myapp. directive ( studentinfo, function ( ) { 11 var directive = {}; 1 13 directive. restrict = E ; 1 15 directive. template = "Student : <b >{{ student.imie }}</b> <b >{{ student.nazwisko }}</b>" ; directive.scope = { 18 student : "= student " 19 } 0 1 return directive ; }) ; 3 myapp. controller ( " StudentController ", function ( $scope, $http ) { 5 $scope. kowalski = {}; 6 $scope. kowalski. imie = "Jan " ; 7 $scope. kowalski. nazwisko = "Kowalski " ; 8 9 $scope. nowak = {}; 30 $scope. nowak. imie = " Anna " ; 31 $scope. nowak. nazwisko = "Nowak " ; 3 }) ; 33 </ script> 3... Dr inż. Stanisław Polak 59 Przedmiot: Aplikacje internetowe Umiędzynarodowienie <script src=" pl-pl.js"></ script> 3... <div ng app=" myapp " ng c o n t r o l l e r=" StudentController "> 5 {{fees currency }} <br/><br/> 6 {{admissiondate date }} <br/><br/> 7 {{rollno number }} 8 </ div> 9 10 <script> 11 var myapp = angular. module ( " myapp ", [ ] ) ; 1 myapp. controller ( StudentController, function ( $scope ) { 13 $scope. fees = ; 1 $scope. admissiondate = new Date ( ) ; 15 $scope. rollno = ; 16 }) ; 17 </ script> 100,00 zł 1 lut ,89 Materiały dla studentów Informatyki WSZiB w Krakowie Dr inż. Stanisław Polak 60 Przedmiot: Aplikacje internetowe
16 Źródła Źródła Źródła I Źródła II Acodemy. Serwisy angularjs. MongoDB Inc. The MongoDB Manual. Jakob Jenkov. AngularJS Tutorial. Joyent. Node.js Manual & Documentation. Maciej Rzepiński. Angularjs factory vs service vs provider. angularjs-8-factory-vs-service-vs-provider.html. Tutorialspoint. AngularJS Tutorial. Dr inż. Stanisław Polak 61 Przedmiot: Aplikacje internetowe Dr inż. Stanisław Polak 6 Przedmiot: Aplikacje internetowe
Materiały dla studentów Informatyki WSZiB w Krakowie
Tworzenie aplikacji w języku JavaScript Przedmiot: Aplikacje internetowe Dr inż. Stanisław Polak Wyższa Szkoła Zarządzania i Bankowości w Krakowie http://artemis.wszib.edu.pl/~polak/ Materiały dla studentów
Angular, cz. II. Tworzenie serwisów Web 2.0. dr inż. Robert Perliński rperlinski@icis.pcz.pl
ngular, cz. II 1/24 Angular, cz. II Tworzenie serwisów Web 2.0 dr inż. Robert Perliński rperlinski@icis.pcz.pl Politechnika Częstochowska Instytut Informatyki Teoretycznej i Stosowanej 10 kwietnia 2015
WYKŁAD 1 ANGULARJS CZĘŚĆ 1
WYKŁAD 1 ANGULARJS CZĘŚĆ 1 DEFINICJA ANGULARJS Framework JavaScript na licencji open-source wykorzystywany do tworzenia aplikacji SPA (single page applications) w oparciu o wzorzec projektowy Model-View-Controler.
MeetingHelper. Aplikacja Android ułatwiająca przekazywanie materiałów pomiędzy uczestnikami spotkania. Instrukcja obsługi dla programisty
MeetingHelper Aplikacja Android ułatwiająca przekazywanie materiałów pomiędzy uczestnikami spotkania Instrukcja obsługi dla programisty W tej części został zawarty opis uruchamiania projektu programistycznego,
Bazy Danych i Usługi Sieciowe
Bazy Danych i Usługi Sieciowe Język PHP Paweł Witkowski Wydział Matematyki, Informatyki i Mechaniki Jesień 2011 P. Witkowski (Wydział Matematyki, Informatyki i Mechaniki) BDiUS w. VIII Jesień 2011 1 /
Poznaj ASP.NET MVC. Kamil Cieślak Microsoft Student Partner 2013-03-11
Poznaj ASP.NET MVC Kamil Cieślak Microsoft Student Partner 2013-03-11 Agenda Czym jest ASP.NET MVC? Wzorzec MVC ASP.NET MVC vs inne frameworki Bazy danych w ASP.NET MVC Jak zacząć? 2 Czym jest ASP.NET
Co to jest NODE.JS? Nowoczesne środowisko programistyczne
Node.js Co to jest NODE.JS? Nowoczesne środowisko programistyczne Środowisko programistyczne w sensie zestawu gotowych klas i metod których można używać do przygotowania własnych skalowalnych i wydajnych
Framework Angular4. Alicja Frankowicz Weronika Węglińska
Framework Angular4 Alicja Frankowicz Weronika Węglińska Angular Pierwszym wydaniem Angulara był Angular1, zwany także AngularJS. Opierał się on na języku JavaScript oraz na wzorcu MVC wdrożonego do aplikacji
ASP.NET MVC. Podstawy. Zaawansowane programowanie internetowe Instrukcja nr 3
3 ASP.NET MVC Podstawy 1 1. Cel zajęć Celem zajęć jest zapoznanie się z podstawami ASP.NET MVC 2.0 Framework. 2. Zadanie Proszę zbudować prostą aplikację WWW przy zastosowaniu framework a ASP.NET MVC 2.0
Projektowanie aplikacji w modelu MVC opartej o framework CodeIgniter
Projektowanie aplikacji w modelu MVC opartej o framework CodeIgniter Konfiguracja i przygotowanie przykładowej aplikacji opartej o model Model-View- Controller Konfiguracja frameworka Zainstaluj na serwerze
Tworzenie witryn internetowych PHP/Java. (mgr inż. Marek Downar)
Tworzenie witryn internetowych PHP/Java (mgr inż. Marek Downar) Rodzaje zawartości Zawartość statyczna Treść statyczna (np. nagłówek, stopka) Layout, pliki multimedialne, obrazki, elementy typograficzne,
Laboratorium 1 Wprowadzenie do PHP
Laboratorium 1 Wprowadzenie do PHP Ćwiczenie 1. Tworzenie i uruchamianie projektu PHP w Netbeans Tworzenie projektu Uruchom środowisko NetBeans. Stwórz nowy projekt typu PHP Application (File->New Project,
Internetowe bazy danych
Wyższa Szkoła Technologii Teleinformatycznych w Świdnicy Internetowe bazy danych wykład 6 dr inż. Jacek Mazurkiewicz e-mail: Jacek.Mazurkiewicz@pwr.wroc.pl Kontrola dostępu
Systemy internetowe. Wykład 3 PHP. West Pomeranian University of Technology, Szczecin; Faculty of Computer Science
Systemy internetowe Wykład 3 PHP PHP - cechy PHP (Hypertext Preprocessor) bardzo łatwy do opanowania, prosta składnia, obsługuje wymianę danych z różnymi systemami baz danych pozwala na dynamiczne generowanie
NoSQL Not Only SQL: CouchDB. I.Wojnicki, NoSQL. Apache CouchDB has started. Time to relax. Przetwarzanie dokumentów i widoków.
Igor Wojnicki (AGH, KIS) PHP 23 października 2016 1 / 29 NoSQL Not Only SQL: CouchDB Apache CouchDB has started. Time to relax. Przetwarzanie dokumentów i widoków. Igor Wojnicki Katedra Informatyki Stosowanej,
server.listen(port, hostname, () => { console.log(`server running at });
TECHNIKI WWW (WFAIS.IF-C125) (zajęcia 04.01.2017 r. i 11.01.2017) Dla przypomnienia uruchamianie serwera http podającego statyczną treść polegało na stworzeniu skryptu wraz z osadzonym kodem statycznej
Referat z przedmiotu Technologie Internetowe SPIS TREŚCI
SPIS TREŚCI 1.Dwie metody przekazu danych do serwera 2 2.Metoda GET przykład 3 3.Metoda POST przykład 4 4.Kiedy GET a kiedy POST 5 5.Szablony po co je stosować 7 6.Realizacja szablonu własną funkcją 8
MVC w praktyce tworzymy system artykułów. cz. 2
MVC w praktyce tworzymy system artykułów. cz. 2 W drugiej części artykułu o wzorcu MVC stworzymy część skryptu, odpowiedzialną za obsługę kategorii. Tworzymy kontroler kategorii Na początek stwórzmy plik
Laboratorium 6 Tworzenie bloga w Zend Framework
Laboratorium 6 Tworzenie bloga w Zend Framework Przygotowanie bazy danych 1. Wykonaj skrypt blog.sql, który założy w bazie danych dwie tabele oraz wpisze do nich przykładowe dane. Tabela blog_uzytkownicy
MVC w praktyce tworzymy system artykułów. cz. 1
MVC w praktyce tworzymy system artykułów. cz. 1 Tworząc różnego rodzaju aplikacje natrafiamy na poważny problem utrzymania dobrej organizacji kodu przejrzystej oraz łatwej w rozbudowie. Z pomocą przychodzą
Quiz Aplikacja internetowa
- 1 - Quiz Aplikacja internetowa Opis: Realizacja aplikacji internetowej Quiz w oparciu o Python i framework Flask (wersja 0.10.1). Autorzy: Tomasz Nowacki, Robert Bednarz Czas realizacji: 90 min Poziom
Aplikacje webowe z wykorzystaniem Node.js oraz Express
Aplikacje webowe z wykorzystaniem Node.js oraz Express Adresaci szkolenia: Kurs przeznaczony jest dla programistów pragnących tworzyć skalowalne aplikacje z wykorzystaniem Node.js. Parametry szkolenia:
Tworzenie stron internetowych z wykorzystaniem HTM5, JavaScript, CSS3 i jquery. Łukasz Bartczuk
Tworzenie stron internetowych z wykorzystaniem HTM5, JavaScript, CSS3 i jquery Łukasz Bartczuk Moduł 6 JavaScript w przeglądarce Agenda Skrypty na stronie internetowej Model DOM AJAX Skrypty na stronie
Ewolucja projektowania aplikacji w PHP na bazie frameworka Symfony 2
Ewolucja projektowania aplikacji w PHP na bazie frameworka Symfony 2 Statyczne strony HTML Wczytanie statycznej strony HTML sprowadza się do odebrania żądania przez serwer, odnalezienia właściwego pliku
Zaawansowane aplikacje internetowe laboratorium REST
Zaawansowane aplikacje internetowe laboratorium REST Pytka Bartosz, Drożdż Mateusz, Ejkszto Mateusz, Łozowski Marcin, Tański Mariusz Do wykonania ćwiczeń potrzebne jest zintegrowane środowisko programistyczne
O sobie. Adam Kowalski. Absolwent informatyki Uniwersytetu Wrocławskiego Full-stack Developer w firmie Synergy Codes.
Wstęp do Angulara O sobie Adam Kowalski Absolwent informatyki Uniwersytetu Wrocławskiego Full-stack Developer w firmie Synergy Codes adam.kowalski@synergycodes.com https://www.synergycodes.com Plan wykładu
Wykład 5: PHP: praca z bazą danych MySQL
Wykład 5: PHP: praca z bazą danych MySQL Architektura WWW Podstawowa: dwuwarstwowa - klient (przeglądarka) i serwer WWW Rozszerzona: trzywarstwowa - klient (przeglądarka), serwer WWW, serwer bazy danych
Zaawansowany kurs języka Python
Środowisko Django początki 10 stycznia 2014 Plan wykładu 1 2 Plan wykładu 1 2 Co to jest Django Oparty o Pythona framework do tworzenia aplikacji internetowych. Co to jest Django Oparty o Pythona framework
Zaawansowane Techniki WWW (HTML, CSS i NODE.JS)
Zaawansowane Techniki WWW (HTML, CSS i NODE.JS) Dr inż. Marcin Zieliński Środa 15:30-17:00 sala: A-1-04 WYKŁAD 8 Wykład dla kierunku: Informatyka Stosowana II rok Rok akademicki: 2014/2015 - semestr zimowy
Systemy internetowe Wykład 3 PHP
Systemy internetowe Wykład 3 PHP PHP - cechy PHP (Hypertext Preprocessor) bardzo łatwy do opanowania, prosta składnia, obsługuje wymianę danych z różnymi systemami baz danych pozwala na dynamiczne generowanie
Full Stack JavaScript z Angular i Nest. Dni: 5. Opis: Adresaci szkolenia
Kod szkolenia: Tytuł szkolenia: DED/FSJS Full Stack JavaScript z Angular i Nest Dni: 5 Opis: Adresaci szkolenia Kurs przeznaczony jest dla programistów posiadających podstawową wiedzę w zakresie JavaScript,
Wybrane działy Informatyki Stosowanej
Wybrane działy Informatyki Stosowanej JSP - Java Server Pages dr hab. inż. Andrzej Czerepicki a.czerepicki@wt.pw.edu.pl http://www2.wt.pw.edu.pl/~a.czerepicki 2019 Aplikacje i skrypty WWW klasyfikacja
Programowanie i projektowanie obiektowe
Programowanie i projektowanie obiektowe CherryPy, Genshi Paweł Daniluk Wydział Fizyki Jesień 2016 P. Daniluk(Wydział Fizyki) PO w. IX Jesień 2016 1 / 20 Aplikacje webowe Podejście standardowe Serwer (np.
Express.js i własne API - pomoc do lab02
xpress.js i własne API - pomoc do lab02 1/27 Express.js i własne API - pomoc do lab02 Tworzenie serwisów Web 2.0 dr inż. Robert Perliński rperlinski@icis.pcz.pl Politechnika Częstochowska Instytut Informatyki
Wybrane działy Informatyki Stosowanej
Wybrane działy Informatyki Stosowanej Aplikacje WWW. Statyczne oraz dynamiczne strony WWW. Skrypty po stronie klienta. Dr inż. Andrzej Czerepicki a.czerepicki@wt.pw.edu.pl http://www2.wt.pw.edu.pl/~a.czerepicki
pawel.rajba@gmail.com, http://kursy24.eu/
pawel.rajba@gmail.com, http://kursy24.eu/ Wprowadzenie, struktura Podstawy Twig Adres i nawigacja Request, Response i parametry Ciasta, sesje i flash messages Model i baza danych Formularze Security Ilustracje
ANGULARJS TWORZENIE APLIKACJI INTERNETOWYCH
ANGULARJS TWORZENIE APLIKACJI INTERNETOWYCH szkolenie dla webdeveloperów ze znajomością przynajmniej podstaw HTML i JavaScript INFORMACJE PODSTAWOWE AngularJS to framework JavaScript stworzony przez inżynierów
Kurs języka Ruby. Ruby on Rails ActionPack
Kurs języka Ruby Ruby on Rails ActionPack Co to jest RoR: Środowisko do szybkiego tworzenia aplikacji webowych Garść informacji Stworzony przez Davida Heinemeiera Hanssona DRY Don't Repeat Yourself Mnóstwo
Programowanie w Ruby
Programowanie w Ruby Wykład 11 Marcin Młotkowski 19 grudnia 2012 Plan wykładu Modele danych i bazy danych Modele danych Migracje Bazy danych w Railsach Rusztowania Walidacja modeli Modele danych Definicje
OPT Open Power Template. System szablonów OPT. Przykładowy skrypt oraz szablon OPT OPT API
OPT Open Power Template System szablonów OPT System szablonów PHP5 Niektóre możliwości: Cache Nagłówki HTTP oraz kompresja Rozszerzalność Struktury kontrolne Wysokopoziomowe struktury Ułatwienia Wysoka
Podstawy wzorca MVC 2011-10-18 MODEL KON- TROLER WIDOK. Odpowiada za wyświetlenie danych użytkownikowi. Zawiera dane aplikacji oraz jej logikę.
Podstawy wzorca MVC MODEL KON- TROLER WIDOK Zawiera dane aplikacji oraz jej logikę. MODEL WIDOK Odpowiada za wyświetlenie danych użytkownikowi KON- TROLER KON- TROLER MODEL WIDOK Jedyna część aplikacji,
Wieloplatformowe aplikacje sieciowe. dr inż. Juliusz Mikoda mgr inż. Anna Wawszczak
Wieloplatformowe aplikacje sieciowe dr inż. Juliusz Mikoda mgr inż. Anna Wawszczak SOAP Serwer: Axis2 / Java Wbudowany komponent nasłuchujący, (Apache / Tomcat) Client Axis2 klient / XML Jeżyk programowania:
Microsoft.NET: ASP.NET MVC + Entity Framework (Code First)
Microsoft.NET: ASP.NET MVC + Entity Framework (Code First) Do realizacji projektu potrzebne jest zintegrowane środowisko programistyczne Microsoft Visual Studio 2012. W ramach projektu budowana jest prosta
Wybrane działy Informatyki Stosowanej
Wybrane działy Informatyki Stosowanej Aplikacje WWW. Statyczne oraz dynamiczne strony WWW. Skrypty po stronie klienta. dr hab. inż. Andrzej Czerepicki a.czerepicki@wt.pw.edu.pl http://www2.wt.pw.edu.pl/~a.czerepicki
Popularne dostępne rozwiązania. Najpopularniejsze środowiska programistyczne:
Popularne dostępne rozwiązania Najpopularniejsze środowiska programistyczne: Popularne dostępne rozwiązania Najpopularniejsze środowiska programistyczne: oraz systemy CMS (Content Menager System): Dlaczego
Zaawansowane aplikacje internetowe
Zaawansowane aplikacje internetowe AJAX 1 Celem tego laboratorium jest pokazanie moŝliwości technologii AJAX. W ramach ćwiczeń zostanie zbudowana prosta aplikacja, przechwytująca kliknięcia uŝytkownika
Realizacja Aplikacji Internetowych 2013 laboratorium cz. 2 K.M. Ocetkiewicz
Realizacja Aplikacji Internetowych 2013 laboratorium cz. 2 K.M. Ocetkiewicz Walidacja po stronie klienta: - w MVC 3 i 4 domyślnie jest włączona także walidacja po stronie klienta - wykorzystuje ona JavaScript
PLAN WYNIKOWY PROGRAMOWANIE APLIKACJI INTERNETOWYCH. KL III TI 4 godziny tygodniowo (4x30 tygodni =120 godzin ),
PLAN WYNIKOWY PROGRAMOWANIE APLIKACJI INTERNETOWYCH KL III TI 4 godziny tygodniowo (4x30 tygodni =120 godzin ), Program 351203 Opracowanie: Grzegorz Majda Tematyka zajęć 1. Wprowadzenie do aplikacji internetowych
Programowanie w Ruby
Programowanie w Ruby Wykład 11 Marcin Młotkowski 19 grudnia 2014 Plan wykładu 1 Projekt 2 Modele danych 3 4 5 Marcin Młotkowski Programowanie w Ruby 2 / 38 Zasady Projekt Składowe projektu przynajmniej
Dokumentacja Skryptu Mapy ver.1.1
Dokumentacja Skryptu Mapy ver.1.1 2 Dokumentacja Skryptu Mapy ver.1.1 Spis treści Dokumentacja skryptu... 3 Dodatkowe informacje i kontakt... 7 3 Dokumentacja Skryptu Mapy ver.1.1 Dokumentacja skryptu
Zaawansowane bazy danych i hurtownie danych studia zaoczne II stopnia, sem. I
Wydział Informatyki Politechnika Białostocka Zaawansowane bazy danych i hurtownie danych MySQL studia zaoczne II stopnia, sem. I Plan wykładu 1. MySQL: funkcje, procedury, wyzwalacze 2. HTML : tworzenie
Programowanie zorientowane obiektowo. Mateusz Kołecki
Programowanie zorientowane obiektowo Mateusz Kołecki Plan MVC Wstęp Separacja odpowiedzialnośći Antyprzykład Dobry przykład Wady/zalety MVC MVC to tylko początek - wzorce projektowe Dlaczego chcemy używać
Wykład 03 JavaScript. Michał Drabik
Wykład 03 JavaScript Michał Drabik Język programowania wykorzystywany na stronach internetowych głównie w celu umożliwienia interakcji z użytkownikiem. Kod JavaScript może być umieszczany w kodzie XHTML
Scenariusz Web Design DHTML na 10 sesji. - Strony statyczne I dynamiczne. - Dodawanie kodu VBScript do strony HTML. Rysunek nie jest potrzebny
Scenariusz Web Design DHTML na 10 sesji L.p. Specyficzne detale 2.1 - Strony statyczne I dynamiczne - Dodawanie kodu VBScript do strony HTML doc w Rysunek nie jest potrzebny 2.1.1 Opcje w pisaniu skryptów
Bardzo szybkie wprowadzenie do Node.js
ardzo szybkie wprowadzenie do Node.js 1/16 Bardzo szybkie wprowadzenie do Node.js Technologie zarządzania treścią dr inż. Robert Perliński rperlinski@icis.pcz.pl Politechnika Częstochowska Instytut Informatyki
Bazy Danych i Usługi Sieciowe
Bazy Danych i Usługi Sieciowe Język PHP Paweł Daniluk Wydział Fizyki Jesień 2013 P. Daniluk (Wydział Fizyki) BDiUS w. VIII Jesień 2013 1 / 43 Plan wykładu 1 Język PHP 2 Składnia PHP 3 Dostęp do bazy danych
PROJEKTOWANIE APLIKACJI INTERNETOWYCH
PROJEKTOWANIE APLIKACJI INTERNETOWYCH (WFAIS.IF-N016) dr inż. Marcin Zieliński Wykład dla kierunku: Informatyka Stosowana I rok, II stopień Rok akademicki: 2016/2017 - semestr letni WYKŁAD 6 Przypomnienie
Programowanie Komputerów
Programowanie Komputerów Łukasz Kuszner pokój 209, WETI http://www.kaims.pl/ kuszner/ kuszner@eti.pg.gda.pl Wykład 30 godzin, Laboratoria 30 godzin 2012/ Strona 1 z 28 1. Tablice w C# Indeksowane od zera
Zrąb JavascriptMVC. Krzysztof Płocharz. 6 kwiecień 2009. Uniwersytet Warszawski
Uniwersytet Warszawski 6 kwiecień 2009 Spis Treści 1 MVC Jak to wygląda w JavascriptMVC 2 Prawie jak klasy 3 Hierarchia Widoki Kontrolery Modele 4 Struktura katalogów Generatory kodu Generatory dokumentacji
W czystym JavaScripcie zasięgi zmiennych tworzone były poprzez funkcje anonimowe, w AngularJS posiadamy kontrolery, które także są funkcjami.
Zrozumienie tego artykułu jest kluczowe aby móc tworzyć aplikacje w AngularJS. Do tej pory powinieneś wiedzieć czym jest Angular, umieć utworzyć moduł główny aplikacji i podpiąć do niego kontroler. Zdefiniowany
1. Otwórz app_advanced.html i skopiuj i wklej następujący kod bezpośrednio w tagach <head>:
Rozszerzanie WordPressa do mobilnego świata W ostatniej części dowiedzieliśmy się, w jaki sposób możemy tworzyć aplikacje mobilne za pomocą PhoneGap. Teraz będziemy kontynuować budowanie aplikacji mobilnych
Laboratorium 7 Blog: dodawanie i edycja wpisów
Laboratorium 7 Blog: dodawanie i edycja wpisów Dodawanie nowych wpisów Tworzenie formularza Za obsługę formularzy odpowiada klasa Zend_Form. Dla każdego formularza w projekcie tworzymy klasę dziedziczącą
https://portal.clusterix.pl:8443 trainxx tramxx
Logowanie 1. Otworzyć w oknie przeglądarki adres: https://portal.clusterix.pl:8443 2. Zalogować się używając konta, użytkownik: trainxx, hasło: tramxx Delegacja certyfikatu proxy 1. Zalogować poprzez ssh
Funkcje i instrukcje języka JavaScript
Funkcje i instrukcje języka JavaScript 1. Cele lekcji a) Wiadomości Uczeń : zna operatory i typy danych języka JavaScript, zna konstrukcję definicji funkcji, zna pętlę If i For, Do i While oraz podaje
Lista ToDo Aplikacja internetowa
- 1 - Lista ToDo Aplikacja internetowa Opis: Realizacja prostej listy ToDo (lista zadań do zrobienia), jako aplikacji internetowej, z wykorzystaniem Pythona i frameworka Flask w wersji 0.10.1. Autorzy:
Wprowadzenie. 1. Terminal WebRTC. LABORATORIUM 5: WebRTC komunikacja między terminalami.
LABORATORIUM 5: WebRTC komunikacja między terminalami. Wprowadzenie Technika WebRTC (złożenie angielskiego słowa Web oraz akronimu RTC, pochodzącego od angielskiego Real-Time Communications, komunikacja
Umieszczanie kodu. kod skryptu
PHP Definicja PHP jest językiem skryptowym służącym do rozszerzania możliwości stron internetowych. Jego składnia jest bardzo podobna do popularnych języków programowania C/C++, lecz jest bardzo uproszczona
Protokół HTTP. 1. Protokół HTTP, usługi www, model request-response (żądanie-odpowiedź), przekazywanie argumentów, AJAX.
Protokół HTTP 1. Protokół HTTP, usługi www, model request-response (żądanie-odpowiedź), przekazywanie argumentów, AJAX. 1 Usługi WWW WWW (World Wide Web) jest najpopularniejszym sposobem udostępniania
PLAN WYNIKOWY PROGRAMOWANIE APLIKACJI INTERNETOWYCH. KL IV TI 6 godziny tygodniowo (6x15 tygodni =90 godzin ),
PLAN WYNIKOWY PROGRAMOWANIE APLIKACJI INTERNETOWYCH KL IV TI 6 godziny tygodniowo (6x15 tygodni =90 godzin ), Program 351203 Opracowanie: Grzegorz Majda Tematyka zajęć 2. Przygotowanie środowiska pracy
Spis treści. Wstęp 5 Rozdział 1. Praca z AJAX-em 9. Rozdział 2. Współpraca ze skryptami PHP 55. Rozdział 3. Obsługa formularzy 81
Spis treści Wstęp 5 Rozdział 1. Praca z AJAX-em 9 Pierwszy przykład 9 Obiekt XMLHttpRequest 12 Transmisja danych 21 Model DOM 34 Obsługa wielu żądań 45 Rozdział 2. Współpraca ze skryptami PHP 55 Odbieranie
Przygotowanie do nowoczesnego programowania po stronie przeglądarki. (HTML5, CSS3, JS, wzorce, architektura, narzędzia)
Program szkolenia: Przygotowanie do nowoczesnego programowania po stronie przeglądarki (HTML5, CSS3, JS, wzorce, architektura, narzędzia) Informacje: Nazwa: Kod: Kategoria: Grupa docelowa: Czas trwania:
Format HTML. Wybrane działy Informatyki Stosowanej. Definicja i przeznaczenie Struktura dokumentu Znaczniki Formularze i komponenty
Wybrane działy Informatyki Stosowanej Format HTML Definicja i przeznaczenie Struktura dokumentu Znaczniki Formularze i komponenty dr hab. inż. Andrzej Czerepicki 2019 Definicja HTML HyperText Markup Language
Przykład programu w PHP. Wykład10.PHP ciągdalszy,str.1
Przykład programu w PHP Wykład10.PHP ciągdalszy,str.1 Przykład programu w PHP Wykład10.PHP ciągdalszy,str.1 Przeliczanie dnia roku na dzień i miesiąc: function jaka data($dni) {... Przykład programu w
Jak okiełznać frontend w Django? Piotr Maliński www.python.rk.edu.pl
Jak okiełznać frontend w Django? Piotr Maliński www.python.rk.edu.pl Problemy frontendu Trudne testowanie i debugowanie Różne przeglądarki Różne ustawienia przeglądarek Urządzenia dotykowe Przekazywanie
Programowanie w Sieci Internet Blok 2 - PHP. Kraków, 09 listopada 2012 mgr Piotr Rytko Wydział Matematyki i Informatyki
Programowanie w Sieci Internet Blok 2 - PHP Kraków, 09 listopada 2012 mgr Piotr Rytko Wydział Matematyki i Informatyki Co dziś będziemy robić Podstawy podstaw, czyli małe wprowadzenie do PHP, Podstawy
Programowanie w Ruby
Programowanie w Ruby Wykład 13 Marcin Młotkowski 16 stycznia 2013 Plan wykładu Testowanie aplikacji w Ruby on Rails Testowanie modeli Testy funkcjonalne: testowanie kontrolerów Testy integracyjne Testowanie
Technologie internetowe ASP.NET Core. Paweł Rajba
Technologie internetowe ASP.NET Core Paweł Rajba pawel@cs.uni.wroc.pl http://itcourses.eu/ Plan wykładu Wprowadzenie Podstawowa aplikacja Usługi i middleware Obsługa błędów Request, Response, ciastka i
JQuery. $('#pierwszy').css('color','red').hide('slow').show(3000); $(document).ready(function() { //... tutaj nasze skrypty jquery //...
JQuery jquery (jquery.com) to jedna z najbardziej popularnych bibliotek/frameworków do javascript. Jej popularność oczywiście znikąd się nie bierze. Dzięki tej bibliotece jesteśmy w stanie o wiele szybciej
Kurs programowania. Wykład 9. Wojciech Macyna. 28 kwiecień 2016
Wykład 9 28 kwiecień 2016 Java Collections Framework (w C++ Standard Template Library) Kolekcja (kontener) Obiekt grupujacy/przechowuj acy jakieś elementy (obiekty lub wartości). Przykładami kolekcji sa
Pawel@Kasprowski.pl Języki skryptowe - PHP. PHP i bazy danych. Paweł Kasprowski. pawel@kasprowski.pl. vl07
PHP i bazy danych Paweł Kasprowski pawel@kasprowski.pl Użycie baz danych Bazy danych używane są w 90% aplikacji PHP Najczęściej jest to MySQL Funkcje dotyczące baz danych używają języka SQL Przydaje się
Rys.2.1. Drzewo modelu DOM [1]
1. CEL ĆWICZENIA Celem ćwiczenia jest przedstawienie możliwości wykorzystania języka JavaScript do tworzenia interaktywnych aplikacji działających po stronie klienta. 2. MATERIAŁ NAUCZANIA 2.1. DOM model
CouchDB. Michał Nowikowski
CouchDB Michał Nowikowski Agenda Wprowadzenie do CouchDB Mój przypadek Wyniki i wnioski Dokumenty CouchDB Format JSON Pary nazwa wartość Możliwe tablice i struktury Załączniki Brak limitów na liczbę i
Źródła. cript/1.5/reference/ Ruby on Rails: http://www.rubyonrails.org/ AJAX: http://www.adaptivepath.com/publications/e ssays/archives/000385.
Źródła CSS: http://www.csszengarden.com/ XHTML: http://www.xhtml.org/ XML: http://www.w3.org/xml/ PHP: http://www.php.net/ JavaScript: http://devedgetemp.mozilla.org/library/manuals/2000/javas cript/1.5/reference/
Zaawansowane aplikacje WWW - laboratorium
Zaawansowane aplikacje WWW - laboratorium Przetwarzanie XML (część 2) Celem ćwiczenia jest przygotowanie aplikacji, która umożliwi odczyt i przetwarzanie pliku z zawartością XML. Aplikacja, napisana w
Tworzenie Stron Internetowych. odcinek 10
Tworzenie Stron Internetowych odcinek 10 JavaScript JavaScript (ECMAScript) skryptowy język programowania powszechnie używany w Internecie. Skrypty JS dodają do stron www interaktywność i funkcjonalności,
Podstawy (X)HTML i CSS
Inżynierskie podejście do budowania stron WWW momat@man.poznan.pl 2005-04-11 1 Hyper Text Markup Language Standardy W3C Przegląd znaczników Przegląd znaczników XHTML 2 Cascading Style Sheets Łączenie z
Efektywne tworzenie aplikacji webowych z wykorzystaniem AngularJS, HTML5 i JavaScript
Kod szkolenia: Tytuł szkolenia: HTML5/ANG Efektywne tworzenie aplikacji webowych z wykorzystaniem AngularJS, HTML5 i JavaScript Dni: 5 Opis: Adresaci szkolenia: Kurs przeznaczony jest dla programistów
Krótki kurs JavaScript
Krótki kurs JavaScript Java Script jest językiem wbudowanym w przeglądarkę. Gdy ma się podstawy nabyte w innych językach programowania jest dość łatwy do opanowania. JavaScript jest stosowany do powiększania
Technologie sieciowe Sprawozdanie z labolatorium. Lista 5
Politechnika Wrocławska Wydział Podstawowych Problemów Techniki Technologie sieciowe Sprawozdanie z labolatorium Lista 5 Autor: Piotr Kosytorz IIrokInf. indeks: 166174 Prowadzący: dr inż. Łukasz Krzywiecki
Założenia do ćwiczeń: SQL Server UWM Express Edition: 213.184.8.192\SQLEXPRESS. Zapoznaj się ze sposobami użycia narzędzia T SQL z wiersza poleceń.
Cel: polecenia T-SQL Założenia do ćwiczeń: SQL Server UWM Express Edition: 213.184.8.192\SQLEXPRESS Authentication: SQL Server Authentication Username: student01,, student21 Password: student01,., student21
Aplikacje internetowe - laboratorium
Aplikacje internetowe - laboratorium PHP Celem ćwiczenia jest przygotowanie prostej aplikacji internetowej opartej o język PHP. Aplikacja ilustruje takie mechanizmy jak: obsługa formularzy oraz obsługa
Kurs języka Python. Wykład 14. Marcin Młotkowski. 25 stycznia 2010. Python i Apache Pythonowe platformy aplikacyjne. Dystrybucja aplikacji w U*IX
Wykład 14. 25 stycznia 2010 1 2 Dystrybucja aplikacji w U*IX Python w aplikacjach serwerowych CGI; FastCGI, SCGI: ulepszone CGI; WSGI: Web Server Gateway Interface mod_python Moduł mod_python Moduł do
plansoft.org Zmiany w Plansoft.org
Zmiany w Plansoft.org Mapy Google... 1 Tworzenie mapy... 2 Wprowadzanie szerokości i długości geograficznej... 2 Tworzenie mapy... 2 Dostosowanie wyglądu mapy... 3 Ograniczanie liczby zasobów do wyświetlenia
Laboratorium 1. Wzorce oprogramowania lab1, Zofia Kruczkiewicz
Aplikacja internetowa zbudowana w oparciu o środowisko Visual Web Java Server Faces. Zarządzanie obiektami typu SesionBeans, RequestBeen i ApplicationBeans, Laboratorium 1 Wzorce oprogramowania lab1, Okres
ANGULAR 2+ Waldemar Korłub. Aplikacje i Usługi Internetowe KASK ETI Politechnika Gdańska
ANGULAR 2+ Waldemar Korłub Aplikacje i Usługi Internetowe KASK ETI Politechnika Gdańska 2 Architektura MVC: Model View Controller 3 Wzorzec architektoniczny modelujący przepływ sterowania w interfejsie