SlideShare uma empresa Scribd logo
1 de 47
TNPW2 2010/2011 03 – JavaScript Mgr. Lukáš Vacek lukas.vacek@uhk.cz
Agenda3 ,[object Object]
Vložení skriptu do zdrojového kódu stránky
Syntaxe, metody, vlastní funkce
Knihovny (frameworky)
Nejčastější použití JavaScriptu
Internet, doporučená literatura2
Co je to JavaScript? JavaScript je interpretovatelný (neprobíhá kompilování!) programovací jazykse základními objektově orientovanými vlastnostmi V polovině 90. let jej vytvořila firma Netscape a jeho univerzální jádro (včetně různých modifikací – např. JScript od fy Microsoft) je součástí webových prohlížečů Existuje norma pro použití JavaScriptu a jeho odvozenin, ECMAScript Aktuální verze ECMAScriptEdition 5 (12/2009) JavaScript umožňuje vložit do (X)HTML stránky proveditelný obsah, tj. stránka může obsahovat dynamické programy, které s uživatelem komunikují na straně klienta (prohlížeče) Použití JavaScriptu na straně klienta může zvýšit interaktivitu s uživatelem Je označován jako tzv. assembler webu http://cs.wikipedia.org/wiki/JavaScript  http://en.wikipedia.org/wiki/ECMAScript#Dialects http://www.w3schools.com/js/default.asp http://www.jakpsatweb.cz/javascript/ http://www.root.cz/clanky/spor-o-budoucnost-javascriptu-vyresen/ http://zdrojak.root.cz/clanky/ecmascript-strict-mode-ve-firefoxu-4/ 3
Agenda3 ,[object Object]
Vložení skriptu do zdrojového kódu stránky
Syntaxe, metody, vlastní funkce
Knihovny (frameworky)
Nejčastější použití JavaScriptu
Internet, doporučená literatura4
Vložení JavaScriptu do (X)HTML kódu Interní skript 5 <script type="text/javascript"> /* <![CDATA[ */ kód skriptu /* ]]> */ </script> ,[object Object],<script type="text/javascript" src="mujskript.js"></script>
Práce s kódem v JavaScriptu ,[object Object]
Zdrojový kód lze vizuálně strukturovat pro větší přehlednost, stejně tak je možné jej komprimovat v okamžiku nasazení na produkčním prostředí webového serveru
http://dean.edwards.name/packer/
http://yui.2clics.net/6 ,[object Object]
https://addons.mozilla.org/en-US/firefox/addon/1843  (Firebug pro MozillaFirefox)
http://code.google.com/p/jsdt/
http://www.myeclipseide.com/module-htmlpages-display-pid-57.html,[object Object]
Vložení skriptu do zdrojového kódu stránky
Syntaxe, metody, vlastní funkce
Knihovny (frameworky)
Nejčastější použití JavaScriptu
Internet, doporučená literatura7
Syntaxe jazyka, metody, vlákna Jazyk JavaScript vychází ze syntaxe jazyka C (C++, Java, C#, PHP…) Jednotlivé příkazy JavaScriptu se oddělují ";" Hlavním rysem JavaScriptu je používání tzv. metod Metoda je objektově orientovaný termín pro funkci nebo proceduru – část zdrojového kódu provádějící určitou činnost, nejčastěji řízení obsahu webových stránek a (X)HTML formulářů Řada funkcí a procedur je přímo součástí JavaScriptu, další funkce je možné podle aktuální potřeby vytvořit 8 document.write("Text... "); 	// předdefinovaná metoda mojeFunkce(); 			// použití vytvořené fce ,[object Object],http://html456.blogspot.com/2008/08/na-web-prijde-javascript-s-vice-vlakny.html
Vlastní funkce Funkce v JavaScriptu jsou pojmenované části programového kódu, které lze vyvolávat podle potřeby (i opakovaně) Jako svůj výstup funkce provede určitou naprogramovanou činnost nebo může vrátit nějakou hodnotu Vlastní funkci je nutné nadefinovat před jejím prvním použitím! 9 <script type="text/javascript"> /* <![CDATA[ */  functionabc() { var isMSIE = /*@cc_on!@*/false; returnisMSIE; } /* ]]> */ </script> ,[object Object],[object Object]
Vložení skriptu do zdrojového kódu stránky
Syntaxe, metody, vlastní funkce
Knihovny (frameworky)
Nejčastější použití JavaScriptu
Internet, doporučená literatura10
Knihovny (frameworky) Existuje celá řada nejrůznějších JavaScript knihoven, které umožňují vývojářům velmi efektivním způsobem rozšířit funkcionalitu webových stránek K nabízené funkcionalitě těchto knihoven patří např. procházení DOM stránky, zpracování událostí v prohlížeči, práce s obrázky, načítání dat ze serveru, podpora drag&drop, práce s cookies apod.   Mezi nejpoužívanější knihovny patří např. JQuery, Prototype, script.aculo.us, mootools, Yahoo! UI (YUI), Dojo a další http://jquery.com/ http://prototypejs.org/ http://script.aculo.us/ http://dojotoolkit.org/ http://developer.yahoo.com/yui/ http://www.mootools.net/ http://code.google.com/intl/cs/apis/libraries/ 11
jQuery Velikostí malá (jeden soubor, cca 57 KB!) a přitom velmi kompaktní JavaScript knihovna poskytující interaktivitu mezi JavaScriptem a (X)HTML v okně webového prohlížeče Autorem je John Resig (akce BarCamp, 2006) Jde o svobodný software pod licencí MIT a GPL Je např. součástí frameworků Microsoft ASP.NET AJAX, Spring na platformě Java nebo Nokia jQuery na mobilech Základní knihovnu jQuery je možné rozšířit pomocí pluginů http://jquery.com/ http://citron.blueboard.cz/clanek-331-jquery-pro-zacatecniky-zaklady.html http://jquery.jslab.net/zkousecka/ 12
Načtení knihovny na stránce Nejčastěji je vybraná knihovna uložena na stejném webovém serveru jako webové stránky (používám to i v příkladech k přednášce!) Doporučenou variantou pro často používané knihovny je využití existujících souborů v požadované verzi např. jQuery z Google API serveru… http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.js 13 <scriptsrc="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.js" type="text/javascript"></script> <script type="text/javascript"> /* <![CDATA[ */ $(document).ready(function(){   // kód bude iniciován až po načtení celé stránky }); /* ]]> */ </script> ,[object Object],[object Object]
Vložení skriptu do zdrojového kódu stránky
Syntaxe, metody, vlastní funkce
Knihovny (frameworky)
Nejčastější použití JavaScriptu
Internet, doporučená literatura14
Nejčastější použití JavaScriptu Práce s DOM, selektory, zpracování událostí Ovlivnění výstupu v prohlížeči Zobrazování dialogových oken Řízení prohlížeče (např. pohyb v historii, načtení dokumentu, refresh) Spolupráce s CSS Validace a zpracování formulářů Práce s obrázky – preloading obrázků, obrázkové galerie Práce s okny Třídění dat podle sloupců v tabulkách, datové filtry Grafy Bookmarklety Dynamický web (změna obsahu skriptem, AJAX) 15
Práce s DOM, selektory Výběr jednotlivých prvků (DOM objektů) na webové stránce v prohlížeči Následné zpracování událostí a manipulace s vlastnostmi DOM stránky lze v JavaScriptu upravovat i po jejím načtení! 16 // výběr prvku podle ID v JavaScriptu, na validní stránce je 1! document.getElementById('id_prvku') // výběr prvků podle typu elementu v JavaScriptu document.getElementsByTagName('nazev_tagu') // výběr prvků dané třídy v JavaScriptu Není! Musí se doprogramovat. // výběr prvku podle ID v jQuery $('#id_prvku') // výběr prvků podle typu elementu v jQuery $('nazev_tagu') // výběr prvků dané třídy v jQuery $('.nazev_tridy') 03-01-dom.html
17 Zpracování událostí na stránce, vlastnosti prvků Pro manipulaci s vlastnostmi a událostmi prvků se používá tečková konvence!  Některé události detekované v prohlížeči:onclick()		// kliknutí myší na objekt 	jQuery: click()onmouseover		// myš nad objektem		jQuery: mouseover()onmouseout		// myš z objektu		jQuery: mouseout()onsubmit		// odeslání formulář		jQuery: submit() // použití metody onmouseover u obrázku <imgsrc="img_01.gif" id="o1" onmouseover="document.getElementById('o1').src='img_02.gif'" /> ,[object Object]
Pro načtení návratové hodnoty nalezeného prvku v jQuery se používá metoda .val()// použití metody val() pro načtení vybrané hodnoty z combo prvku varhodnota = $("#combooption:selected").val(); 03-02-udalosti.html
Nejčastější použití JavaScriptu ,[object Object],Ovlivnění výstupu v prohlížeči Zobrazování dialogových oken Řízení prohlížeče (např. pohyb v historii, načtení dokumentu, refresh) Spolupráce s CSS Validace a zpracování formulářů Práce s obrázky – preloading obrázků, obrázkové galerie Práce s okny Třídění dat podle sloupců v tabulkách, datové filtry Grafy Bookmarklety Dynamický web (změna obsahu skriptem, AJAX) 18

Mais conteúdo relacionado

Destaque (20)

かんきょう
かんきょうかんきょう
かんきょう
 
Horse Assisted Education - Top Leadership (Polish)
Horse Assisted Education - Top Leadership (Polish)Horse Assisted Education - Top Leadership (Polish)
Horse Assisted Education - Top Leadership (Polish)
 
Wiki
WikiWiki
Wiki
 
Produktive Utviklere Smidig2009
Produktive Utviklere Smidig2009Produktive Utviklere Smidig2009
Produktive Utviklere Smidig2009
 
NHS Points 11-3-09
NHS Points 11-3-09NHS Points 11-3-09
NHS Points 11-3-09
 
心理测试
心理测试心理测试
心理测试
 
.
..
.
 
GaleríA
GaleríAGaleríA
GaleríA
 
Lacastanyera
LacastanyeraLacastanyera
Lacastanyera
 
Iss
IssIss
Iss
 
Perros
PerrosPerros
Perros
 
Bulgaria
BulgariaBulgaria
Bulgaria
 
Sobre ex-libris: conceito geral e exemplos
Sobre ex-libris: conceito geral e exemplosSobre ex-libris: conceito geral e exemplos
Sobre ex-libris: conceito geral e exemplos
 
O bosque de ribeira do Río Miño
O bosque de ribeira do Río MiñoO bosque de ribeira do Río Miño
O bosque de ribeira do Río Miño
 
Programaciones 15 -11-09
Programaciones 15 -11-09Programaciones 15 -11-09
Programaciones 15 -11-09
 
As Plantas
As PlantasAs Plantas
As Plantas
 
Iss
IssIss
Iss
 
Logo
LogoLogo
Logo
 
Evolutsioonitoendid
EvolutsioonitoendidEvolutsioonitoendid
Evolutsioonitoendid
 
~$Iss
~$Iss~$Iss
~$Iss
 

Semelhante a TNPW2-2011-03

Smalltalk prakticky [CZ]
Smalltalk prakticky [CZ]Smalltalk prakticky [CZ]
Smalltalk prakticky [CZ]Tomáš Kukol
 
20110511 Vývoj software - produktivně, efektivně, kvalitně
20110511 Vývoj software - produktivně, efektivně, kvalitně20110511 Vývoj software - produktivně, efektivně, kvalitně
20110511 Vývoj software - produktivně, efektivně, kvalitněJiří Mareš
 
Použití Next.js a Reactí UI khinihovny v aplikaci
Použití Next.js a Reactí UI khinihovny v aplikaciPoužití Next.js a Reactí UI khinihovny v aplikaci
Použití Next.js a Reactí UI khinihovny v aplikaciMartin Krištof
 
Rozšiřitelnost ASP.NET MVC
Rozšiřitelnost ASP.NET MVCRozšiřitelnost ASP.NET MVC
Rozšiřitelnost ASP.NET MVCtopascz
 
2009 X33EJA Moderní Technologie Pro Vývoj JEE
2009 X33EJA Moderní Technologie Pro Vývoj JEE2009 X33EJA Moderní Technologie Pro Vývoj JEE
2009 X33EJA Moderní Technologie Pro Vývoj JEEMartin Ptáček
 
Rozšiřitelnost ASP.NET MVC
Rozšiřitelnost ASP.NET MVCRozšiřitelnost ASP.NET MVC
Rozšiřitelnost ASP.NET MVCtopascz
 
Čtvrtkon #71 - Marian Benčat - Angular a NativeScript
Čtvrtkon #71 - Marian Benčat - Angular a NativeScriptČtvrtkon #71 - Marian Benčat - Angular a NativeScript
Čtvrtkon #71 - Marian Benčat - Angular a NativeScriptCtvrtkoncz
 
Polymer project presentation
Polymer project presentationPolymer project presentation
Polymer project presentationjskvara
 
Představení Ruby on Rails
Představení Ruby on RailsPředstavení Ruby on Rails
Představení Ruby on Railsigloonet
 
MoroSystems na ostravském CZJUGu o Apache Wicket
MoroSystems na ostravském CZJUGu o Apache WicketMoroSystems na ostravském CZJUGu o Apache Wicket
MoroSystems na ostravském CZJUGu o Apache WicketTomáš Páral
 
Trendy a nové možnosti test automation
Trendy a nové možnosti test automationTrendy a nové možnosti test automation
Trendy a nové možnosti test automationOndřej Machulda
 
2007 Technologie Pro Tvorbu Java Enterprise Aplikací
2007 Technologie Pro Tvorbu Java Enterprise Aplikací2007 Technologie Pro Tvorbu Java Enterprise Aplikací
2007 Technologie Pro Tvorbu Java Enterprise AplikacíMartin Ptáček
 
INPTP Rekapitulace
INPTP Rekapitulace INPTP Rekapitulace
INPTP Rekapitulace Jan Hřídel
 

Semelhante a TNPW2-2011-03 (20)

TNPW2-2016-03
TNPW2-2016-03TNPW2-2016-03
TNPW2-2016-03
 
Smalltalk prakticky [CZ]
Smalltalk prakticky [CZ]Smalltalk prakticky [CZ]
Smalltalk prakticky [CZ]
 
20110511 Vývoj software - produktivně, efektivně, kvalitně
20110511 Vývoj software - produktivně, efektivně, kvalitně20110511 Vývoj software - produktivně, efektivně, kvalitně
20110511 Vývoj software - produktivně, efektivně, kvalitně
 
Použití Next.js a Reactí UI khinihovny v aplikaci
Použití Next.js a Reactí UI khinihovny v aplikaciPoužití Next.js a Reactí UI khinihovny v aplikaci
Použití Next.js a Reactí UI khinihovny v aplikaci
 
TNPW2-2011-06
TNPW2-2011-06TNPW2-2011-06
TNPW2-2011-06
 
Rozšiřitelnost ASP.NET MVC
Rozšiřitelnost ASP.NET MVCRozšiřitelnost ASP.NET MVC
Rozšiřitelnost ASP.NET MVC
 
TNPW2-2012-07
TNPW2-2012-07TNPW2-2012-07
TNPW2-2012-07
 
2009 X33EJA Moderní Technologie Pro Vývoj JEE
2009 X33EJA Moderní Technologie Pro Vývoj JEE2009 X33EJA Moderní Technologie Pro Vývoj JEE
2009 X33EJA Moderní Technologie Pro Vývoj JEE
 
Rozšiřitelnost ASP.NET MVC
Rozšiřitelnost ASP.NET MVCRozšiřitelnost ASP.NET MVC
Rozšiřitelnost ASP.NET MVC
 
Čtvrtkon #71 - Marian Benčat - Angular a NativeScript
Čtvrtkon #71 - Marian Benčat - Angular a NativeScriptČtvrtkon #71 - Marian Benčat - Angular a NativeScript
Čtvrtkon #71 - Marian Benčat - Angular a NativeScript
 
Polymer project presentation
Polymer project presentationPolymer project presentation
Polymer project presentation
 
Představení Ruby on Rails
Představení Ruby on RailsPředstavení Ruby on Rails
Představení Ruby on Rails
 
MoroSystems na ostravském CZJUGu o Apache Wicket
MoroSystems na ostravském CZJUGu o Apache WicketMoroSystems na ostravském CZJUGu o Apache Wicket
MoroSystems na ostravském CZJUGu o Apache Wicket
 
ASP.NET 3.5 / futures
ASP.NET 3.5 / futuresASP.NET 3.5 / futures
ASP.NET 3.5 / futures
 
Trendy a nové možnosti test automation
Trendy a nové možnosti test automationTrendy a nové možnosti test automation
Trendy a nové možnosti test automation
 
2007 Technologie Pro Tvorbu Java Enterprise Aplikací
2007 Technologie Pro Tvorbu Java Enterprise Aplikací2007 Technologie Pro Tvorbu Java Enterprise Aplikací
2007 Technologie Pro Tvorbu Java Enterprise Aplikací
 
Django
DjangoDjango
Django
 
2010 Web Technologie 1
2010 Web Technologie 12010 Web Technologie 1
2010 Web Technologie 1
 
EZproxy Seminar Multidata
EZproxy Seminar MultidataEZproxy Seminar Multidata
EZproxy Seminar Multidata
 
INPTP Rekapitulace
INPTP Rekapitulace INPTP Rekapitulace
INPTP Rekapitulace
 

Mais de Lukáš Vacek (20)

TNPW2-2016-07
TNPW2-2016-07TNPW2-2016-07
TNPW2-2016-07
 
TNPW2-2016-06
TNPW2-2016-06TNPW2-2016-06
TNPW2-2016-06
 
TNPW2-2016-05
TNPW2-2016-05TNPW2-2016-05
TNPW2-2016-05
 
TNPW2-2016-04
TNPW2-2016-04TNPW2-2016-04
TNPW2-2016-04
 
TNPW2-2016-02
TNPW2-2016-02TNPW2-2016-02
TNPW2-2016-02
 
TNPW2-2016-01
TNPW2-2016-01TNPW2-2016-01
TNPW2-2016-01
 
TNPW2-2014-01
TNPW2-2014-01TNPW2-2014-01
TNPW2-2014-01
 
TNPW2-2014-05
TNPW2-2014-05TNPW2-2014-05
TNPW2-2014-05
 
TNPW2-2014-04
TNPW2-2014-04TNPW2-2014-04
TNPW2-2014-04
 
TNPW2-2013-10
TNPW2-2013-10TNPW2-2013-10
TNPW2-2013-10
 
TNPW2-2013-09
TNPW2-2013-09TNPW2-2013-09
TNPW2-2013-09
 
TNPW2-2013-08
TNPW2-2013-08TNPW2-2013-08
TNPW2-2013-08
 
TNPW2-2013-07
TNPW2-2013-07TNPW2-2013-07
TNPW2-2013-07
 
TNPW2-2013-06
TNPW2-2013-06TNPW2-2013-06
TNPW2-2013-06
 
TNPW2-2013-05
TNPW2-2013-05TNPW2-2013-05
TNPW2-2013-05
 
TNPW2-2013-04
TNPW2-2013-04TNPW2-2013-04
TNPW2-2013-04
 
TNPW2-2013-02
TNPW2-2013-02TNPW2-2013-02
TNPW2-2013-02
 
TNPW2-2013-01
TNPW2-2013-01TNPW2-2013-01
TNPW2-2013-01
 
TNPW2-2012-10
TNPW2-2012-10TNPW2-2012-10
TNPW2-2012-10
 
TNPW2-2012-09
TNPW2-2012-09TNPW2-2012-09
TNPW2-2012-09
 

TNPW2-2011-03