Programowanie w Sieci Internet jquery - nowy aromat kawy angular.js. Kraków, 24 października 2014 r. mgr Piotr Rytko Wydział Matematyki i Informatyki

Podobne dokumenty
Technologie Internetu. JQuery

JQuery. $('#pierwszy').css('color','red').hide('slow').show(3000); $(document).ready(function() { //... tutaj nasze skrypty jquery //...

Programowanie w Sieci Internet JSP ciąg dalszy. Kraków, 9 stycznia 2015 r. mgr Piotr Rytko Wydział Matematyki i Informatyki

Rys.2.1. Drzewo modelu DOM [1]

WYKŁAD 5 BIBLIOTEKA JQUERY CZĘŚĆ 1

PROGRAMOWANIE. WNPiD UAM, Programowanie, inż. Piotr Jabłoński

Tworzenie stron internetowych z wykorzystaniem HTM5, JavaScript, CSS3 i jquery. Łukasz Bartczuk

Angular, cz. II. Tworzenie serwisów Web 2.0. dr inż. Robert Perliński

Tworzenie stron internetowych z wykorzystaniem HTM5, JavaScript, CSS3 i jquery. Łukasz Bartczuk

Technologie internetowe w programowaniu

Podstawy JavaScript ćwiczenia

PLAN WYNIKOWY PROGRAMOWANIE APLIKACJI INTERNETOWYCH. KL III TI 4 godziny tygodniowo (4x30 tygodni =120 godzin ),

Zajęcia 4 - Wprowadzenie do Javascript

WYKŁAD 1 ANGULARJS CZĘŚĆ 1

Programowanie w Sieci Internet Blok 2 - PHP. Kraków, 09 listopada 2012 mgr Piotr Rytko Wydział Matematyki i Informatyki

DOM (Document Object Model)

Programowanie w Sieci Internet filtry oraz web.xml. Kraków, 11 stycznia 2013 r. mgr Piotr Rytko Wydział Matematyki i Informatyki

Wykład 03 JavaScript. Michał Drabik

CSS. Kaskadowe Arkusze Stylów

Funkcje i instrukcje języka JavaScript

Użycie filtrów w widoku

Krótki kurs JavaScript

Laboratorium 7 Blog: dodawanie i edycja wpisów

TECHNOLOGIE INTERNETOWE WYKŁAD 6. JavaScript Funkcje i obiekty

Przekształcenie danych przestrzennych w interaktywne mapy dostępne na stronach www (WARSZTATY, poziom zaawansowany)

JAVAScript w dokumentach HTML (1) JavaScript jest to interpretowany, zorientowany obiektowo, skryptowy język programowania.

app/ - folder zawiera pliki konfiguracyjne dla całej aplikacji Można wybrać sposób zapisu konfiguracji: YML, XML, PHP

Test przykładowy 2 PAI WSB Wrocław /06/2018

Laboratorium 2: Portfolio zdjęciowe, p.2

Format HTML. Wybrane działy Informatyki Stosowanej. Definicja i przeznaczenie Struktura dokumentu Znaczniki Formularze i komponenty

Wybrane działy Informatyki Stosowanej

PLAN WYNIKOWY PROGRAMOWANIE APLIKACJI INTERNETOWYCH. KL IV TI 6 godziny tygodniowo (6x15 tygodni =90 godzin ),

Uwagi dotyczące notacji kodu! Moduły. Struktura modułu. Procedury. Opcje modułu (niektóre)

Wybrane działy Informatyki Stosowanej

Bazy Danych i Usługi Sieciowe

XML extensible Markup Language. część 5

Defilada - przykład wykorzystujący animowane modele Copperlicht. Andrzej P.Urbański Politechnika Poznańska

Dostosowywanie wyglądu aplikacji czytelnika w oparciu o oprogramowanie dlibra 5.0

Czym jest AJAX. AJAX wprowadzenie. Obiekt XMLHttpRequest (XHR) Niezbędne narzędzia. Standardowy XHR. XHR z obsługą baz danych

Wprowadzenie do języka HTML

Delphi podstawy programowania. Środowisko Delphi

Być może jesteś doświadczonym programistą, biegle programujesz w Javie,

Aplikacje WWW - laboratorium

Obiektowy PHP. Czym jest obiekt? Definicja klasy. Składowe klasy pola i metody

TOPIT Załącznik nr 3 Programowanie aplikacji internetowych

Widżety KIWIPortal. tworzenie umieszczanie na stronach internetowych opcje zaawansowane. Autor: Damian Rebuś Data: Wersja: 1.

Umieszczanie kodu. kod skryptu

Masz pomysł na lepszy wygląd?

PHP: bloki kodu, tablice, obiekty i formularze

Wybrane działy Informatyki Stosowanej

Tworzenie Stron Internetowych. odcinek 10

Jak okiełznać frontend w Django? Piotr Maliński

CZYM JEST JAVASCRIPT?

Programowanie w Sieci Internet Python - c. d. Kraków, 28 listopada 2014 r. mgr Piotr Rytko Wydział Matematyki i Informatyki

Laboratorium Wstawianie skryptu na stroną: 2. Komentarze: 3. Deklaracja zmiennych

Wyrażenie include(sciezka_do_pliku) pozwala na załadowanie (wnętrza) pliku do skryptu php. Plik ten może zawierać wszystko, co może się znaleźć w

5-6. Struktura dokumentu html. 2 Określenie charakteru i tematyki strony. Rodzaje witryn. Projekt graficzny witryny. Opracowanie skryptów

AJAX. Wykonał: Marcin Ziółkowski, AGH Kraków, AiR rok 5.

Rys.2.1. Trzy warstwy stanowiące podstawę popularnego podejścia w zakresie budowy stron internetowych [2]

Programowanie w Internecie

Aplikacje internetowe

LABORATORIUM 2 WSTĘP DO SIECI TELEINFORMATYCZNYCH TABELE I FORMULARZE

Co to jest NODE.JS? Nowoczesne środowisko programistyczne

XML extensible Markup Language. część 5

Oczywiście plik musi mieć rozszerzenie *.php

Informatyzacja Przedsiębiorstw

29. Poprawność składniowa i strukturalna dokumentu XML

Informatyka I. Klasy i obiekty. Podstawy programowania obiektowego. dr inż. Andrzej Czerepicki. Politechnika Warszawska Wydział Transportu 2018

Źródła. cript/1.5/reference/ Ruby on Rails: AJAX: ssays/archives/

Języki skryptowe w programie Plans

Zakres treści Czas. 2 Określenie charakteru i tematyki strony. Rodzaje witryn. Projekt graficzny witryny. Opracowanie skryptów

Dokumentacja imapliteapi

Patryk Jar Meet.js, Gdańsk 11 marca 2013 r. MODULARNY JAVASCRIPT

Aplikacje w środowisku Java

I. Menu oparte o listę

LESS - CSS dla leniwych

Generated by Foxit PDF Creator Foxit Software For evaluation only. System Szablonów

Przetwarzanie dokumentów XML i zaawansowane techniki WWW Zdarzenia w JavaScript (Zajęcia r.)

Modele danych walidacja widoki zorientowane na model

Dokumentacja Skryptu Mapy ver.1.1

Wstęp. Język HTML jest uniwersalnym jezykiem wykorzystywanym przy

HTML5 i CSS. Deklaracja <!DOCTYPE> musi być na początki dokumentu napisanego w HTML5 przed tagiem <html>.

Podstawowe znaczniki języka HTML.

WYKŁAD 4 JĘZYK JAVASCRIPT CZĘŚĆ 1

Aplikacje WWW - laboratorium

Kompresja stron internetowych

Referat z przedmiotu Technologie Internetowe SPIS TREŚCI

JavaScript funkcyjność

Tworzenie stron internetowych z wykorzystaniem HTM5, JavaScript, CSS3 i jquery. Łukasz Bartczuk

Widoki zagnieżdżone, layout. 1. Wprowadzenie Repozytoria danych

- dodaj obiekt tekstowy: /** Maciej */ Stage { title : "First JavaFX App" scene: Scene { width: 300 height: 300 content: [ ] } }

Kompilacja javac prog.java powoduje wyprodukowanie kilku plików o rozszerzeniu.class, m.in. Main.class wykonanie: java Main

Efektywne tworzenie aplikacji webowych z wykorzystaniem AngularJS, HTML5 i JavaScript

Pliki zorganizowano w strukturze drzewiastej odzwierciedlając strukturę logiczną aplikacji:

Tworzenie witryn internetowych PHP/Java. (mgr inż. Marek Downar)

W czystym JavaScripcie zasięgi zmiennych tworzone były poprzez funkcje anonimowe, w AngularJS posiadamy kontrolery, które także są funkcjami.

Kurs programowania. Wykład 7. Wojciech Macyna. 25 kwietnia 2017

znajdowały się różne instrukcje) to tak naprawdę definicja funkcji main.

Transkrypt:

Programowanie w Sieci Internet jquery - nowy aromat kawy angular.js Kraków, 24 października 2014 r. mgr Piotr Rytko Wydział Matematyki i Informatyki

Co będzie dziś jquery - nowy aromat kawy, czyli biblioteka do programowania w Java Script po stronie klienta / programowanie dla przeglądarki, oraz co nieco o angular.js Wstęp do jquery, składnia, pisanie w jq, $.ajax(), kilka przydatnych funkcji, przykłady, wstęp do AngularJS składnia, pisanie w angularze, przykłady.

Wstęp do jquery Aby zacząć programować w jquery nie trzeba nam dużo. Po pierwsze musimy zdobyć jakąś świeżą (jak poranne bułeczki) bibliotekę jquery. Najświeższe biblioteki można zawsze znaleźć na stronie: http://jquery.com/download/ lub jeśli masz dostęp do Git a, to możesz pobrać go z repository: git clone git://github.com/jquery/jquery.git Następnie należy umieścić odpowiedni link do biblioteki w kodzie strony która ma zostać obsłużona przez nasz skrypt (najlepiej zrobić to w sekcji nagłówkowej, aczkolwiek w dowolnym miejscu na stronie będzie to działać). <script src=jquery.js></script> <!-- zgodne z html5 --> I już możesz rozpocząć działanie w skrypcie.

Wstęp do jquery c.d. jquery umożliwia: manipulację kodem HTML / DOM, manipulację kodem CSS, obsługę eventów HTML, animacje i efekty wizualne, obsługę AJAX, oraz wiele innych. Aby wykonać akcję na obiekcie wystarczy umieścić ją po kropce za selektorem obiektu: $(selector).action(); np.: $(.initiallyhiddenclass ).show( slow ); $(this) odnosi się do bieżącego elementu w aktualnym kontekście. Funkcje callback wykonywane są po zakończeniu działania eventu np: $(selector).show(2000,myfunction); <!-- Po zakończeniu animacji efektu show() trwającego 2000 milisekund zostanie wywołana funkcja myfunction() -->

Składnia Większość programów w JS jeśli miała się uruchomić po załadowaniu strony wykorzystywało kod: window.onload = function(){... } W jquery można to zrobić na kilka sposobów: $(document).ready(function() {... }); $().ready(function() {... }); $(function() {... }); jquery(document).ready(function($) {... }); Składnia jquery jest bardzo podobna do CSS. Selektory są definiowane tak jak w CSS. Akcje bindowane do elementów mogą definiować własne działanie przez definiowanie funkcji: $(selector).dblclic(function() {... }); funkcje te mogą też przyjmować eventy i operować na nich: $( a ).click(function(e) { e.preventdefault(); alert( Locked ); }); jquery ma bardzo zwięzłą składnię łańcuchową. Każdy łańcuch rozpoczyna się od znaku $, a kolejne polecenia dopinane są do łańcucha za pomocą kropki. $(selektor).css( color, red ).click(function(){ alert( ha, ha ); }).hide( slow ).show( fast );

Pisanie w jq Aby debugować kod jquery można wypisywać nieznane wartości przez alert(info); lub mniej inwazyjnie dla użytkownika (w przypadku gdybyśmy zapomnieli usunąć debugu z kodu przed wdrożeniem projektu) poprzez konsolę: console.log(info); Konsola jest dostępna przez firebug a, dragonfly a czy inspektora. Zamiast pisać pętli for in można wykorzystać wbudowaną akcję.each(), w której można zadeklarować funkcję, która ma zostać wykonana na każdym obiekcie zwróconym przez selektor. Jako, że niektóre akcje zwracają nowy obiekt a w jquery akcje można umieszczać łańcuchowo, nie zawsze chcemy się odwołać do nowo zwróconego obiektu. Wtedy możemy skorzystać z metody.end() aby wrócić do poprzedniego elementu jquery.

$.ajax() AJAX służy do pobierania danych z zewnętrznego źródła i obrabiania go przez kod bez konieczności przeładowywania strony. $.ajax(argumenty); argumenty: url - adres źródła danych (np.: rss.xml ), type - typ zapytania (np.: GET ), data - obiekt z danymi do wysłania w zapytaniu, async - czy zapytanie ma być przetwarzane asynchronicznie (domyślnie true), beforesend - callback przed wysłaniem wiadomości, success - callbac na wypadek powodzenia, error - callback na wypadek niepowodzenia, complete - callback wykonywany po zakończeniu success lub error, i wiele innych.

Przydatne funkcje Najczęściej przydają się funkcje automatyzujące animacje czy inne efekty na stronie. show() - rozwija element od górnego lewego rogu, hide() - chowa element zwijając go do górnego lewego rogu, toggle() - działa zamiennie tak jak show() i hide(), fadein(), fadeout(), fadetoggle() - ukrywanie i pokazywanie elementu, fadeto() - zmienia opacity elementu do zadanej wartości, slideup(), slidedown(), slidetoggle() - zwijanie w górę, w dół i zamienne, animate({parametry},speed,callbackfunction) - do animacji obiektów za pomocą manipulacji stylami, np.: $("div").animate({ }); height: +22px, width: +22px,left: -11px,top: -11px stop() - zatrzymuje akcje animacji i efektów,

Przydatne funkcje c.d. text() - zwraca wartość jedynie tekstową elementu (pomijając tagi HTML), html() - zwraca wartość zachowując wewnątrz strukturę drzewa DOM, val() - pobiera zawartość atrybutu value elementu, jeśli podano wartość jako atrybut, to akcje te ustawią odpowiednio zawartości elementu attr(name,val) - jeśli brak val podaje wartość atrybutu name, wpp ustawia go na val, append() - dopina wartość z argumentu na koniec zawartości elementu, prepend() - jak wyżej, ale przed zawartością elementu, after() - dopina zawartość za danym elementem, before() - dopina zawartość przed danym elementem, remove() - usuwa dany element z drzewa DOM wraz z wszystkimi dziećmi, empty() - usuwa z drzewa DOM zawartość wraz z wszystimi dzieci danego elementu, addclass(), removeclass(), toggleclass(), css() - dodaje, usuwa ulasy i zmienia css, width(), height(), innerwidth(), innerheight(), outerwidth(), outerheight() - zwracają szerokości i wysokości elementu,

Przykłady Kod jquery: $("div").animate({left:'200px',fontsize:'3em',width:'+=110px',height:'-=46px'},3000); element do manipulacji na stronie: <div style="height:100px;width:200px;">animate ME</div> $.ajax({! type: "GET",! url: "time.xml",! success: function(data) {!! T = $(data).find( time );!!!! $('.now').children().remove();!! $('#schooltable').children().remove();!! var tmp = 0;!! var i = 0;!! $(.rows ).each(function(){!!! if(t > ++i)!!!! tmp = i;!!! $('#schooltable').append($(this));!! }!! if(t > S && T < E)!!! $('.now').append($(.rows:nth-child( +i+ ) ).show();!! else!!! $('.now').hide();! } });

Wstęp do AngularJS Aby rozpocząć pracę z AngularJS, podobnie jak w przypadku jquery, wystarczy zainkludoać bibliotekę angular.js, np. poprzez kod: <script src="http://ajax.googleapis.com/ajax/libs/angularjs/1.2.15/angular.min.js"></script> ng-dyrektywy umieszczane w tagach HTMLowych rozszeżają je i definiują ich działanie. Aby kod był w pełni walidowalny do kodu HTML5, należy dodać przedrostek data- data-ng-app definiuje aplikację AngularJS (element jest zarządcą aplikacji), data-ng-model łączy wartość elementu HTML (textarea, input, select) do danych aplikacji, data-ng-bind łączy wartość danych aplikacji do widoku HTML (wypełnia innerhtml), data-ng-init inicjalizuje aplikację (ustawia dane wejściowe itp.), data-ng-controller definiuje kontroler, data-ng-repeat zapętla wstawianie elementów HTMLowych do kodu strony. Wyrażenia można wrzucać bezpośrednio do zawartości tagów HTML poprzez umieszczenie ich w podwójnych nawiasach wąsiastych {{ expression }}

Składnia Swoistym konstruktorem aplikacji angular.js jest controller (data-ng-controller). Jest to funkcja JS przyjmująca w atrybutach $scope - objekt aplikacji. <div ng-app="" ng-controller="carcontroller"> Make: <input type="text" ng-model="make"><br> Model: <input type="text" ng-model="model"><br> <br> Parameters: {{ findparameters() }} </div> <script> function carcontroller($scope, $http) { $scope.make = "BMW", $scope.model = "325i", $scope.findparameters = function() { $http.get(./carsparameters.php?make= +$scope.make+ &model= +$scope.model).success(function(response){ return response; }); } } </script> zamiast wypisywania ciała kontrolera w kodzie strony możemy go wyrzucić do osobnego pliku i zainkludować kawałkiem kodu: <script src="carcontroller.js"></script> Można użyć kilku kontrolerów w aplikacji o różnym scope (zakresie). Wystarczy umieścić deklarację kontrolera w odpowiednim elemencie drzewa DOM w HTMLu. <div ng-controller="myctroller">

Pisanie w angularze W przypadku gdy chcemy przerzucić część kodu modułu aplikacji, lub nawet do zewnętrznych plików js, możemy nadać aplikacji nazwę. <div ng-app="myapp" ng-controller="myctrl"> {{ model + " " + make }} </div> <script> var app = angular.module("myapp", []); app.controller("myctrl", function($scope) { $scope.make = "Ferrari"; $scope.model = "ff"; }); </script> W tan sposób tworzymy moduł aplikacji i możemy w nim stworzyć controller etc. Aby osadzić kod strony, np. z aplikacją angular.js, przy pomocy samego angulara, możemy wykorzystać dyrektywę data-ng-include: <div class="container"> <div ng-include="'supercars.htm'"></div> <div ng-include="'hypercars.htm'"></div> </div> Filtrowanie nie koniecznie znaczy wybieranie danych ze zbioru na podstawie wyrażenia logicznego. Filtrowanie w angularze odbywa się poprzez znak pipeline Zamiana znaków na duże lub małe, formatowanie waluty czy sortowanie jest filtrowaniem w AngularJS.

Przykłady Filtrowanie poprzez zmianę znaków na duże litery: <p>uppercase string {{ str uppercase }}, lowercase string {{ str lowercase }}</p> Formatowanie waluty jako filtrowanie: <p>total = {{ (quantity * price) currency }}</p> Sortowanie jako filtrowanie: <ul> <li ng-repeat="x in cars orderby:'make'"> {{ x.make + ' ' + x.model }} </li> </ul> lub nawet filtrowanie na podstawie wpisywanych danych: <p><input type="text" ng-model="test"></p> <ul> <li ng-repeat="x in cars filter:test orderby:'make'"> {{ (x.make uppercase) + ' ' + x.model uppercase }} </li> </ul>

Dziękuję za uwagę!