ICT MPDU wykład 1
Kompendium tematyki przedmiotu Technologie teleinformatyczne wspomagające przesył informacji i komunikację Wykorzystanie protokołu http (HTML+JavaScript+PHP+MySQL) Sharepoint w chmurze Microsoft Sharepoint - rozwiązanie serwerowe, adaptacja w biznesie Prace w zespole komunikacja, przepływy pracy
Informacja+komunikacja www (World Wide Web) Mosaic pierwsza przeglądarka 1993 Internet Explorer (ver.11) Chrome(Google)-Chromium Firefox(Mozilla) Opera Safari
HTML (ang. HyperText Markup Language, pol. hipertekstowy język znaczników) język wykorzystywany do tworzenia stron internetowych HTML kod źródłowy języka, można bezpośrednio pisać korzystając z edytora tekstu nieformatowanego (ASCII) np. Notatnik zapis w pliku tekstowym ASCII, z rozszerzeniem htm lub html HTML HTML zdefiniowanie sposobu strukturalnej i wizualnej prezentacji dokumentu w przeglądarce internetowej, osadzanie ciągów instrukcji języków skryptowych, wpływających na zachowanie przeglądarek lub innych parserów HTML przeglądarka dla przesyłu dokumentów HTML korzysta przede wszystkim z protokołu HTTP (hypertext transfer protocol) ale także bezpieczniejszego (szyfrowanego) protokołu HTTPS.
Dynamiczny HTML lub DHTML (ang. Dynamic HyperText Markup Language, dynamiczny hipertekstowy język znaczników) techniki służące do dynamicznej zmiany treści, wyglądu, zachowania dokumentu HTML w przeglądarce umożliwiające interakcję strony WWW z użytkownikiem i stosowanie efektów wizualnych Wyposażenie dokumentów hipertekstowych w: - skrypty wykonywane przez przeglądarkę - client side - (Javascript) - skrypty wykonywane na serwerze www server side (PHP, perl, asp, aplety Javy i in.) - obsługę baz danych.
Jak widać elementy mają hierarchię, mogą się zagnieżdżać ("rodzice" i "dzieci"). innerhtml znacznika P
PODSTAWOWA STRUKTURA dokumentu HTML pewne parametry konfiguracji treść strony <HTML> <HEAD> <TITLE> Tytuł w nagłówku okna </TITLE> </HEAD> <BODY> Tu są elementy pojawiające się na stronie </BODY> </HTML> Plik tekstowy o nazwie z rozszerzeniem htm lub html, często index.html
Znaczniki (tagi) postać ogólna <ZNACZNIK atrybuty> zawartość </ZNACZNIK> atrybuty są opcjonalne (niekonieczne) Są też znaczniki bez zawartości: BR IMG INPUT HR i inne Zamiast pisać <BR></BR> piszemy <BR />
Przykład - znacznik hiperłącza <A href="jakiś_adres"> Onet </A> nazwa atrybutu otwarcie znacznika identyfikator typu znacznika tutaj A wartość atrybutu zawartość Może być kilka atrybutów zamknięcie znacznika ważny atrybut: style
Znaczniki pomocne w interakcji z użytkownikiem Formularz <FORM> innerhtml </FORM> Posiada m.in. ważne atrybuty: method i action, wykorzystywane do wykonania programów umieszczonych na serwerze
I często używane wewnętrzne znaczniki formularza: Pole edycji jednowierszowej <INPUT type="text"/> Przyciski <INPUT type="submit" value="ok"/> <INPUT type="reset" value="reset"/> <BUTTON/> Posiadają ważny atrybut: onclick Pole wyboru <INPUT type="checkbox" name="ok" VALUE="B" /> OK Pole edycji wielowierszowej <TEXTAREA name="tekst" rows="5" cols="20"> MIEJSCE NA WIĘKSZY TEKST </TEXTAREA>
Wiele tutoriali w sieci, np.: https://www.signs.pl/html/
Dla obsługi danych wpisanych do formularzy (np. ich wysłanie na serwer w celu zapisu czy też analizy) konieczne jest zastosowanie specjalnych metod
Przykład dokumentu HTML <HTML> <HEAD> <TITLE> Moja strona </TITLE> </HEAD> <BODY style="background-color:gray;margin-left:3cm"> <H1> To jest moja strona </H1> <HR style="width:100%;height:3px;background-color:black"/> <TABLE style="border:1px solid red"> <TR> <TD> AA </TD> <TD> AB </TD></TR> <TR> <TD> BA </TD> <TD> BB </TD> </TR> <TR> <TD> CA </TD> <TD> CB </TD> </TR> </TABLE> <UL> <LI> <A href='http://www.onet.pl">onet</a></li> <LI> <A href='http://www.google.pl">google</a></li> <LI> <A href='http://www.interia.pl">interia</a></li> </UL> </BODY> </HTML> zastosowano tu atrybut style HEAD tabela lista hiperłączy BODY
CSS arkusze stylów opiera się na zasadzie określania cech elementów w dokumencie HTML - dzięki atrybutowi style <ZNACZNIK style="cecha:wartość;inna_cecha:wartość">... Styl elementu może posiadać wiele cech, np.: <P style="font-size:20px;color:blue">... <TABLE style=" background-color:#ff0000; border:2px solid red;">... itd cechy stylu oddzielamy średnikami
Bez określonych jawnie cech stylu elementy posiadają pewne cechy domyślne (arkusz stylów przeglądarki) Przykładowo: <P> To jest tekst akapitu </P> Taki tekst będzie miał czarną czcionkę, wielkości 16 pikseli, krój Times New Roman, bez marginesów, obramowań, tła itp. <P style="color:red;font-size:26px"> Akapit tekstowy o cechach określonych atrybutem style </P> Tu ustaliliśmy już kolor czcionki i jej rozmiar
Cechy stylu dotyczą: wielkości elementu (szerokość, wysokość) wyglądu elementu: koloru, wielkości i kroju tekstu typu, koloru i grubości ramek koloru (lub grafiki) dla tła elementu położenia elementu - marginesy zewnętrzne, wyrównania położenia elementów wewnętrznych do danego elementu, np. ich oddalenia (padding)
Przykładowe cechy stylów Styl Opis Przykładowa wartość background-color #ff0000 albo rgb(255,0,0) kolor tła blue background-image adres pliku tła graficznego url('rys1.gif ') border-color kolor obramowania red border-style styl i wygląd obramowania dotted dashed solid border cała ramka (makro-cecha) 2px solid yellow border-left lewa krawędź ramki j.w. border-right prawa krawędź ramki j.w. border-top górna krawędź ramki j.w. border-bottom dolna krawędź ramki j.w.
color kolor tekstu yellow #669933 font-family rodzaj oraz rodzina czcionki Arial sans-serif font-size wielkość czcionki 14px 2cm font-style styl czcionki italic font-weight grubość (waga) czcionki bold lighter height wysokość elementu 10px 3mm width szerokość elementu 100px left odległość od lewej (górnej) 10cm 3mm krawędzi top position typ określenia współrzędnych elementu fixed relative
margin margin-top margin-bottom margin-left margin-right odległości od zewnętrznego elementu (w kolejności górny, prawy, dolny, lewy) każdy margines osobno 3px 3px 10px 20px 5cm text-align wyrównanie poziome tekstu left center justify text-decoration wygląd tekstu underline vertical-align wyrównanie w pionie top bottom padding oddalenie wewnętrznego elementu
UWAGA Style mogą być dziedziczone przez elementy wewnętrzne Przykładowo: <HTML> <HEAD> <TITLE> Moja strona testowa </TITLE> </HEAD> <BODY style="color:red; font-size:26px;"> <P> Akapit tekstowy </P> <P> Akapit tekstowy2 </P> </BODY> </HTML> obydwa akapity dziedziczą od BODY
Przykład wielu cech stylu dla akapitu <P style="color:red; font-size:26px; font-family:arial; border:1px solid green; background-color:yellow; width:10cm; margin-left:3cm; text-align:center "> A to inny akapit</p> 3 cm
Javascript Przypomnienie zasad Może być osadzany w innych programach, na przykład w przeglądarce internetowej, aby, mając dostęp do obiektów otoczenia (np. modelu obiektowego przeglądarki internetowej - DOM), można sprawować nad tym otoczeniem kontrolę. Javascript jest łatwy w nauce i pozwala na zdynamizowanie stron internetowych, a także zarządzanie własnymi, utworzonymi obiektami. Przeglądarki mogą pytać o zezwolenie na wykonanie skryptu.
Wstawienie skryptu do dokumentu HTML Skrypty JavaScript są zagnieżdżane w dokumentach HTML. Skrypt JavaScript umieszczane są między znacznikami <SCRIPT> i </SCRIPT>. <SCRIPT LANGUAGE="JavaScript"> treść skryptu </SCRIPT>
<HTML><HEAD></HEAD> <BODY> <P> To jest tekst 1</P> <SCRIPT LANGUAGE="JavaScript"> treść skryptu 1 </SCRIPT> <P> To jest tekst 2</P> <SCRIPT LANGUAGE="JavaScript"> treść skryptu 2 </SCRIPT> </BODY></HTML> Może istnieć wiele skryptów naprzemiennie z pozostałym kodem HTML
Aby tworzyć działające skrypty JavaScript wymagane są: - jakaś metoda wprowadzania i przechowania danych (liczb, tekstów) - jakieś instrukcje, które umożliwią obliczenia wyników - jakieś metody pokazania wyniku
Wykorzystanie skryptu Javascript w dokumencie HTML <HTML><HEAD></HEAD> <BODY> <SCRIPT LANGUAGE="JavaScript"> // obiekt document i jego metoda write - wypisanie tekstu document.write ("To jest zwykły tekst"); // wysyłamy też znacznik HTML document.write ("<BR />"); //nadajemy wartość zmiennej x=5; //... i wyświetlamy jej wartość document.write("wartość zmiennej <I>x</I> : "+x); document.write ("<BR>To jest liczba PI:"+Math.PI); </SCRIPT> <P> a to już akapit poza skryptem</p> </BODY></HTML> właściwość obiektu
Identyfikatory Są to nazwy elementów (zmiennych, obiektów, funkcji) Zmienne służą do przechowania wartości określonego typu Jednym z podstawowych sposobów nadania wartości zmiennej jest instrukcja przypisania (nadania wartości) Ciąg liter, cyfr, znaków podkreślenia (nie wolno spacji!) Musi się zaczynać od litery Ważne duże i małe litery! (w odróżnieniu od innych języków) Przykłady identyfikatorów dla zmiennych: x alfa Alfa mojazmienna B11 c_33 to dwie różne zmienne styl "wielbłądzi"
Operatory Arytmetyczne: + - * / %(reszta z dzielenia) Przypisania: = += x+=5 odpowiada x=x+5, = x =5 odpowiada x=x 5, *= x*=5 odpowiada x=x*5, /= x/=5 odpowiada x=x/5, ++ inkrementacja zwiększenie o 1 (x++ odpowiada x=x+1) -- dekrementacja zmniejszenie o 1 (x-- odpowiada x=x-1) %= reszta z dzielenia (x%=5 odpowiada x=x%5) operator + służy też do konkatenacji (łączenia tekstów) "Mateusz " + 'Kowalski' para " lub para '
Przykładowo: <SCRIPT LANGUAGE="JavaScript"> x = 7; //początkowo x ma wartość 7 x++; //zwiększamy o 1 x += 4; //dodajemy 4 (lub: x=x+4 ) x %= 10; //reszta z dzielenia z przez 10, a więc.. 2 //tu trzeba by wypisać wartość x na ekranie, zaraz się nauczymy </SCRIPT>
Operatory porównania ==!=(nierówne) <= < > >= Przykładowo: wyrażenie operator wyrażenie x==5 x>=3 a+b> 3*y jest to pytanie: czy jest spełnione? odpowiedź: tak lub nie (TRUE/FALSE) Porównania mogą być przypisane do zmiennej: z34 = 5<=6 (zmienna z34 będzie miała wartość true) Używane też w innych instrukcjach (np. warunkowej) o tym za chwilę
Instrukcje wykonanie akcji! Instrukcje języka oddzielamy średnikami (jeśli zapisujemy w tym samym wierszu). Czasem blok kilku instrukcji otaczamy klamrami { } zazwyczaj we wnętrzu instrukcji warunkowych i iteracyjnych (np. if, for, while) o nich za chwilę <SCRIPT LANGUAGE="JavaScript"> instrukcja1; { instrukcja2; instrukcja3; instrukcja4; } </SCRIPT> traktowany w całości jako blok instrukcji
Typy instrukcji - przypisania (nadania wartości); - warunkowe (if, switch) - pętle (for, while, do while) - wykonania funkcji (metody obiektu) Przypomnieć sobie obiekt Math jego metody umożliwiają wykorzystanie funkcji matematycznych
Instrukcja przypisania zmienna operator_przypisania [wyrażenie]; Po lewej stronie operatora tylko nazwa zmiennej!!! inicjowanej (pierwszy raz definiowanej) lub istniejącej i przedefiniowywanej. Po prawej stronie operatora piszemy wyrażenie (bardzo podobne jak w Excelu), zawierające liczby, operatory, nawiasy okrągłe, funkcje metody obiektów, oraz zmienne o ZNANYCH WARTOŚCIACH Wyrażenie jest obliczane i jego wartość przechowana w zmiennej Wyrażenie jest opcjonalne (pomijamy w przypadku operatorów ++ i --) Przykłady: x=5; alfa= 3*x; b15=(3-x)+2.7/alfa; b15++; x+=4; stałe - liczby dziesiętne z KROPKĄ!!!
Instrukcja wypisania na ekranie document.write (element); document to wbudowany obiekt w JavaScript, a write (pisz) to jedna z jego metod identyfikator obiektu i identyfikator jego metody oddzielamy kropką Przykład <SCRIPT LANGUAGE="JavaScript"> document.write ("To jest zwykły tekst<br />"); x=5; //przypisujemy wartość zmiennej // wyświetlamy jej wartość document.write("wartość zmiennej <I>x</I> : "+x+"<br />"); napis="mateusz " + 'Kowalski'; document.write(napis); </SCRIPT> Można wysyłać do przeglądarki znaczniki HTML(dla pozycjonowania, formatowania itp.)
Inna metoda wyprowadzenia danych - wyświetlanie w dodatkowym okienku alert Metoda dla obiektu window, tworząca okienko dialogowe z napisem informacyjnym lub wartością numeryczną. <SCRIPT language="javascript"> raz=2; alert("witaj!"); alert("witaj "+raz+"-gi raz"); </SCRIPT> dokładniej window.alert, ale domyślny obiekt to window
Debugging detekcja błędów kodu JavaScript Przykładowo: document.write("log(5)<br />"); document.write(math.log(5)/math.log(10)+"< br />"); W IExplorer Menu Narzędzia (narzędzia deweloperskie - F12) w oknie konsoli klikamy menu Skrypt Po odświeżeniu strony w konsoli pojawi się komunikat: SCRIPT5009: Brak definicji math
Definicja i wykorzystanie własnych funkcji Tworzenie definicji funkcji to zapis pewnego algorytmu działań na danych ogólnych (argumentach formalnych). Oczywiście istnieje możliwość wielokrotnego wykorzystania funkcji dla różnych zestawów danych szczegółowych (argumentach aktualnych). Funkcje są definiowane przez określenie ich nazwy, argumentów i sposobu działania. Funkcje definiowane przez użytkownika także umieszczamy we wnętrzu znacznika SCRIPT: <SCRIPT language="javascript"> </SCRIPT> w sekcji HEAD dokumentu HTML. definicje funkcji Pozwala to na załadowanie ich na samym początku, aby dowolny skrypt wykorzystujący funkcję w kodzie JavaScript na stronie mógł od razu być wykonywany przez przeglądarkę.
Schematy definiowania funkcji function nazwa(lista argumentów formalnych) { instrukcje; } function nazwa(lista argumentów formalnych) { instrukcje; return zmienna;//zwrot rezultatu } Argumenty formalne w definicji funkcji to lista nazw zmiennych (oddzielanych przecinkami) potrzebnych do wykonania instrukcji wewnątrz definicji funkcji Jeśli funkcja ma zwracać jakiś rezultat wykorzystujemy frazę: return zmienna
Wykonanie funkcji jeśli funkcja nic nie zwraca (brak return), wykonanie funkcji jest najczęściej osobną instrukcją, przykładowo: nazwa_funkcji (lista argumentów aktualnych) jeśli funkcja zwraca rezultat (występuje return), używamy funkcję w kontekście rezultatu (np. możemy rezultat wypisać na stronie lub przypisać do zmiennej), przykładowo: document.write (nazwa_funkcji (lista argumentów aktualnych)) x = nazwa_funkcji (lista argumentów aktualnych) Argumenty aktualne wykonania to: stałe, zmienne o znanych wartościach lub obliczalne wyrażenia, oddzielane przecinkami. Ich liczba i kolejność (a często także typ) powinna być taka sama jak argumentów formalnych w definicji funkcji.
Jak to działa <HTML><HEAD> <SCRIPT LANGUAGE="JavaScript"> function pokaz(a, b){ alert (a*b); } </SCRIPT> Uwaga: brak return </HEAD><BODY> <SCRIPT LANGUAGE="JavaScript"> //dwukrotne wykonanie funkcji pokaz(3, 5) ; pokaz(9,6); </SCRIPT> </BODY></HTML> osobne instrukcje
Inny przykład <HTML><HEAD> <SCRIPT LANGUAGE="JavaScript"> function srednia(a, b){ x=(a+b)/2; return x; } </SCRIPT> </HEAD><BODY> Argumenty formalne <SCRIPT LANGUAGE="JavaScript"> //dwukrotne wykonanie funkcji document.write(srednia(5, 9),"<BR>"); y= 3.8 document.write(srednia(3.6, y)); </SCRIPT> </BODY></HTML> Argumenty aktualne funkcja zwraca obliczone x rezultaty wykonania funkcji wypisujemy na stronie
Przykład użytkowy <HTML><HEAD> <SCRIPT LANGUAGE="JavaScript"> function polekola(r) { pole=math.pi*r*r; return pole; } </SCRIPT> </HEAD><BODY> <SCRIPT LANGUAGE="JavaScript"> //dwukrotne wykonanie funkcji document.write("obliczenie pól dwóch okręgów<br/>") document.write("r=5.9 pole=",polekola(5.9),"<br>"); document.write("r=3.6 pole=",polekola(3.6)); </SCRIPT> </BODY></HTML>
To co funkcja ma wykonać po wywołaniu, jest zdefiniowane w instrukcjach między nawiasami { }. Po słowie kluczowym return określamy co ma zwrócić wykonanie funkcji (rezultat wykonania funkcji - w przykładzie obliczoną wartość x), stąd w dalszej części skryptu zwróconą wartość funkcji wyświetlamy z wykorzystaniem document.write W ramach skryptu w bloku HEAD można oczywiście zdefiniować wiele funkcji, muszą mieć unikalne nazwy. Funkcje mogą mieć wiele argumentów (różnych typów).
Funkcja z reguły zwraca jedną, elementarną wartość, chociaż może nic nie zwracać Możliwy jest zwrot wielu wartości, trzeba wykorzystać tablicę.
<HTML><HEAD> <SCRIPT language="javascript"> function tab2(a,b){ var x=new Array( ) x[1]=(a+b)/2; x[2]=(a-b)/2; return x; } </SCRIPT> </HEAD><BODY> <SCRIPT language="javascript"> //teraz wykonanie funkcji definicja działania funkcji a=tab2(10, 8); //wykonanie funkcji, wynik przechowaj w zmiennej a document.write(a[1],"<br>"); document.write(a[2]); </SCRIPT> </BODY></HTML>
Interakcyjne wykonywanie funkcji Można wykonać funkcję w reakcji na zdarzenie, np. umieszczając ją w atrybucie onclick dowolnego elementu (znacznika): <HTML><HEAD> <SCRIPT language="javascript"> function nacisnij(x ) </SCRIPT> alert(x); </HEAD><BODY> <INPUT type="submit" value="ok" onclick="nacisnij( 'Hello');"> </BODY> </HTML> przekazanie tekstu do funkcji
To samo, lecz z interakcyjnym wprowadzaniem danych dla funkcji <HTML><HEAD> <SCRIPT language="javascript"> function nacisnij(a) { alert(a*a); } </SCRIPT> </HEAD><BODY> <FORM> <INPUT type="text" id="in1" /> Należy zastosować atrybut id dla istotnych znaczników <INPUT type="submit" value="ok" onclick="nacisnij(in1.value);" /> </FORM> </BODY> </HTML> obiekt INPUT o identyfikatorze in1 ma atrybut value, która zawiera wpisaną w pole tekstowe wartość
Istnieje możliwość zarządzania elementami strony przy pomocy JavaScript Prosty przykład: <HTML><HEAD> <SCRIPT LANGUAGE="JavaScript"> function nowy() { pole2.value=pole1.value; //przepisanie treści pole1.value=""; //skasowanie treści } </SCRIPT> </HEAD> <BODY> <INPUT type="text" id="pole1" /> <INPUT type="text" id="pole2" /> <INPUT type="submit" value="przepisz" onclick="nowy()" /> </BODY> </HTML>