Kliens-oldali technológiák e-book Dr. Daragó László

Méret: px
Mutatás kezdődik a ... oldaltól:

Download "Kliens-oldali technológiák e-book Dr. Daragó László"

Átírás

1 TÁMOP-4.1.2/A/1-11/ Egészségügyi Ügyvitelszervező Szakirány: Tartalomfejlesztés és Elektronikus Tananyagfejlesztés a BSc képzés keretében Kliens-oldali technológiák e-book Dr. Daragó László

2 Tartalomjegyzék A böngésző (web kliens) programozói környezete... 3 JavaScript... 3 Programozási struktúra, alapszintaxis... 4 A JavaScript nyelvi elemei... 4 A HTML és a JavaScript összekapcsolása HTML DOM A DOM (Document Object Model) A HTML DOM DOM események PHP és JavaScript közötti (egyszeri, egyirányú) adatátadás megvalósítása HTML és CSS haladóbb szinten A HTML5 alapjai A HTML4 és HTML5 tagjainek keresztreferenciája CSS Néhány érdekes HTML5 megoldás XML transzformáció a kliens oldalon XML DOM Az XML dokumentumok szerkezete, használatuk WEB és XML XML SAX XSLT Egyszerű XSLT elemek XPATH alapok XPATH selectorok

3 A böngésző (web kliens) programozói környezete JavaScript A JavaScriptet a 90-es évek IE/NN 1 böngésző-háborúként emlegetett korszakában fejlesztettek ki a Netscape-nél (az IE a VBScriptet favorizálta). Nem tévesztendő össze a Java programozási nyelvvel, amely szintén interpreteres nyelv, de a Sun Microsystems (azóta már Oracle) fejlesztése. A két nyelv szintaxisa hasonló, ez talán annak köszönhető, a két fejlesztő csapat tagjai között mutatkozott átfedés, vagy talán mindannyian a C-n nőttek fel. A JavaScript, avagy Mocha, avagy LiveScript, avagy JScript, avagy ECMAScript ugyanazt jelöli. Douglas Crockford aki állítólag nem rokona Douglas Adamsnek, bár humoruk összemérhető - szerint a JavaScript elnevezés létrejöttének valódi oka az, hogy az eredetileg kitalált Livescript név nem volt eléggé zavarba ejtő (vagy, ahogy a feltűnésre vágyók mondják: mindegy, hogy mit, csak beszéljenek rólam!). A Javascript két helyen futhat: a böngészőkben és a web-szervereken (amennyiben ott telepítették a JRE-t azaz Javascript Runtime Engine-t vigyázat, a Java Runtime Environmentet is JRE-nek rövidítik <ld. D.C. 2 >). A Javascript csakis, és kizárólag a WWW miatt jött létre. A kliens oldali JS 3, támogatja programozási feladatok elkészítését a Weben (interaktív funkciók, animációk), a CSS3+HTML5 együttes használatával DHTML-nek is nevezik. A kliens és a szerver oldali rész alapvetően különbözik annak ellenére, hogy szintaxisuk egyező. A kliens oldali JS-kódot a böngésző végrehajtja, csak annak kimenete jelenik meg. A JS kódot a HTML kód közé, általában a <head> és </head> tagek közé, vagy a <body> szekció elejére ékeljük, vagy egyszerűen csak meghivatkozzuk (ld. később, a HTML és JS kapcsolatának firtatásánál). Amikor a böngésző megjeleníti a HTML kódot, akkor a <script> és </script> közé írt kódrészleteket nem megjeleníti, hanem értelmezi és futtatja, ezzel biztosítja az oldal dinamikus viselkedését. Mindezek után se menjen el senkinek a kedve a kurzustól, hiszen annyira mégsem reménytelen a helyzet, de azt is érdemes megjegyezni, hogy ez nem útikönyv, amit az elején szoktak kezdeni és a végén bezárni. Érdemes megbarátkozni az oda-vissza lapozgatás technikájával! 1 IE: Internet Explorer, NN: Netscape Navigator 2 Douglas Crockford 3 Javascript, rövidítve 3

4 1. ábra Egy HTTP kliens-szerver modell Programozási struktúra, alapszintaxis A szkriptek értéket visszaadó, vagy értéket vissza nem adó függvényeket (eljárásokat) tartalmaznak. Ezek felépítése ugyanolyan, mint az általában megismert vezérlési szerkezetek: ciklusok, feltételek, elágazások, eljárások és függvényhívások jellemzőek rá csakúgy, mint a korábban megismert (pl. PHP szkripteknél, vagy Office (VBA-moduloknál). A JS alapvető szintaxisa szerint az objektumokat { és, a tömböket [ és ] foglalja magába, az utasításokat pedig sortörés helyett a ; zárja. az abc és abc egyaránt használható, sőt egymásba is ágyazható. Az utasítások blokkokba szervezhetőek. A blokkokat { és karakterek határolják. A blokkok tetszőleges szinten egymásba ágyazhatóak, mindegyik szinten tetszőleges számú utasítással. A JavaScript nyelvi elemei Változók és adattípusok 4

5 number string boolean A JS azonosítók (változók, objektumok, függvények) alfabetikus karakterrel, vagy _-jellel kezdődnek, a továbbiakban tartalmazhatnak számjegyet is. Az azonosítók eset-érzékenyek, azaz a kis- és nagybetűk különbözőnek tekintendőek. A deklarálást var, vagy let prediktummal lehet kezdeni. A let deklaráció lokális változót hoz létre. A JavaScript dinamikus nyelv, azaz nem kell deklaráláskor feltétlenül meghatározni egy változó adattípusát, és az adattípusok automatikusan konvertálódnak, ahogy az a szkript futása során szükséges. A JS adattípusai: Adattípus Leírás undefined null function Egész, vagy valós (lebegőpontos) szám. Karakterlánc változó. Mivel a JS-ben char-változó nincs, a karakter 1-hosszú string. Logikai változó, ami true (igaz) vagy false (hamis) értéket vehet fel. Ha számként használjuk, akkor a true értéke 1, a false értéke pedig 0 lesz. Használható mind formális logikai, mint numerikus kalkulálásra. A változó létre lett hozva, de még nem lett hozzárendelve érték. Ez egy speciális adat, ami azt jelzi, hogy a változó nem tartalmaz semmit. Függvényváltozó. Értéknek egy függvényt kaphat. object Objektum változó, összetett adattípus. Literál, vagy konstans lehet logikai (Boolean), numerikus vagy string adat, illetve megjegyzés, ezek közül is // egysoros megjegyzés /* illetve több soros megjegyzés */ Az egész számokat decimális, hexadecimális és oktális formában lehet ábrázolni. A decimális számnál nem használunk vezető nullát. Ha az első számjegy 0, akkor a szám oktális, míg, ha az 0x (0X) szel kezdődik, akkor hexadecimális. A hexadecimális számokban az ABCDEF számjegyek használata nem eset-érzékeny. A lebegőpontos számok decimálisak. Lehetnek E27.1e10 9E-10 alakúak, azaz tartalmazhatnak +/- előjelet, tizedespontot és az e/e előzi meg a karakterisztikát (szóköz nélkül). 5

6 A string lehet abc abc lesz közben egy \n sörtörés alakúak. Lehetnek u.n. whitespace, azaz nem ábrázolható karakterek is a stringekben, ezeket \b - backspace \f form feed \r carriage return \n new line \\ \" \' módon jelöljük. A logikai változó true (igaz) vagy false (hamis) értéket vehet fel. Ha számként használjuk, akkor a true értéke 1, a false értéke pedig 0 lesz. Felsorolási típus (enumerated): A nyelvben nincs explicit konstrukció felsorolási típusra, de szimulálhatóak objektum-literálokkal. Például: var szinek = {piros: 0, zöld: 1, kék: 2; var a_szin = Colors.piros; (Ékezetes betűt inkább ne használjunk!) Konstanst, azaz olyan változót, amely a szkript lefutása során nem változtatja az értékét az alábbi módon definiálhatunk: const pi = '3.1415'; Tömb Az elemi értékekből tömbök állíthatóak össze, és a tömb bármely eleme lehet tetszőleges típusú, azaz egy tömbben többféle típusú adat is előfordulhat. Tömbök létrehozása: a. Konstruktor hívás, opcionálisan a kezdő tömbméret paraméterként átadva: var longvector = new Array(100); // 100 elemű tömb var shortvector = new Array(); // 0 elemű tömb, ua., mint var shortvector = []; b. Konstruktor hívás, a tömb elemei paraméterként átadva var evens = new Array(2,4,6,8); 6

7 c. Tömbliterál létrehozása, az elemek "[" és "]" között felsorolva var odds = [1,3,5,7]; d. Generátor használata ("Array comprehensions") function range(start, end) { for (let i = start; i < end; ++i) { yield i; var tiz_negyzet = [i * i for each (i in range(0, 10))]; var paros_negyzet = [i * i for each (i in range(0, 21)) if (i % 2 == 0)]; A tömb elemei hivatkozhatóak, indexszel (0,1,2.. ), illetve hivatkozható az egész tömbre egyszerre is a tömb nevével. A tömb hosszát a length tulajdonság mutatja. A tömb nem minden elemének kell értéket adni, így a NewArray = [, "második elem",, "negyedik elem"]; deklarációval létrehozott tömb első és harmadik eleme undefined lesz, amíg nem kap értéket. A JS nem támogat többdimenziós tömböket, helyette a tömbök tömbje használandó: var twodim = [ [11,12], [21,22] ]; Asszociatív tömb A tömbök indexelésére pozitív egészek helyett stringek is használhatóak. Ekkor használható a. operátor az egyes tömbelemek eléréséhez, például: var myarray = new Array(); myarray["a"] = 100; myarray["c"] = 200; myarray["a"] == myarray.a == 100 Valójában ilyenkor az "a" nevű tulajdonságra lehet hivatkozni. A tömb használata Veremként A push(), tömb végére tesz be egy elemet, és pop() elvesz onnan egyet. A verem többi jellemző művelete a tömb hosszának és az indexelésnek a használatával oldható meg. 7

8 A tömb használata Sorként A shift() függvény eldobja, tömbelejéről, az unshift() beszúrja a tömb elejére a paraméternek megfelelő számú elemet. Rekord A deklarálás itt is az elemek { és közötti felsorolásával történik Az elemeknél előbb az azonosítót, majd az értéket kell megadni. A téves kulccsal (azonosítóval, vagy indexszel-) történő hivatkozás a tömb hivatkozással ellentétben nem undefined értékhez, hanem hibához vezet. A következő példában a rekord egy literált, egy függvényt és egy változót tartalmaz: var valt1; function fv1 { // fv1_visszateresi_erteke precord = { a: "szöveg", b: fv1, 7: valt1; // ekkor például a következő hivatkozások érvényesek: precord.a, precord.b, precord[7] // viszont ezek hibához vezetnek: precord[a], precord[0], precord.7 A rekordok a tömbökhöz hasonlóan egymásba ágyazhatóak, azaz struktúrák hozhatóak létre: rrecord = { a: { a: "p1", 2: "p2", 3: "k3" // ekkor a helyes hibatkozások: rrecord.a.a, rrecord.a[2], rrecord[3] A JS általános változóinak globális tulajdonságai tulajdonság Infinity NaN undefined leírás Pozitív/negatív végtelen (pl. 0-val való osztás eredménye) "Not-a-Number" azaz nem szám A változóhoz (még) nem rendeltek értéket. Kifejezések és operátorok A kifejezés literálok, változók, operátorok és utasítások kombinációja, amely kiértékelése egyetlen értéket eredményez. 8

9 A JS kifejezéseinek értékei: Aritmetikai: szám String: stringet Logikai: igaz vagy hamis érték Operátorok Értékadási operátor (=) Az értékadás a hagyományos, illetve a C-hez, illetve Java-hoz hasonlóan bal-, illetve jobboldali operandusokkal végzett változata is elfogadott. Például az x*=y ugyanaz, mint az x=x*y. Az egyelőség előtti műveleti jel megismétli a baloldali operandust a jobb oldalon. A jobb oldali operandus változás értéke a műveletben attól függ, hogy a műveleti jel előtte, vagy utána szerepel. Példa: y=5; z=2; x=y+z; hagyományos módon az x értéke 7 lesz. Nézzük, milyen esetek fordulhatnak még elő: operátor művelet művelet x utána y utána + összeadás x=y kivonás x=y * szorzás x=y* / osztás x=y/ % modulus (maradék) x=y% növelés x=++y 6 6 x=y csökkentés x=--y 4 4 x=y Amennyiben a művelet előtt y=5; x=10; úgy az alábbiak lesznek a kifejezések értékei: = x=y x=5 += x+=y x=x+y x=15 9

10 -= x-=y x=x-y x=5 *= x*=y x=x*y x=50 /= x/=y x=x/y x=2 %= x%=y x=x%y x=0 Összehasonlítás Az összehasonlítások eredménye igaz, vagy hamis logikai érték. Ha csak az értéket kell megvizsgálni (==), a JS önmagától összehasonlítható alakba konvertálja az operandusokat, míg alaposabb esetben a típust is egyezteti (===). Aritmetikai inkrementáció (++), dekrementáció (--), negálás (logikai, illetve aritmetikai változónál) (-), valamint modulus (%) Bitenkénti műveletek A bitenkénti operátor az operandusokat 32 bites számokként kezelik. AND a & b bitenkénti ÉS kiértékelés OR a b bitenkénti VAGY kiértékelés XOR a ^ b bitenkénti KIZÁRÓ VAGY kiértélés NOT ~ a bitenkénti negálás Bal léptetés a << b a baloldal felé lépteti a b-vel lépteti a bitjeit, a jobboldalon 0-k lépnek be Előjel-megőrző jobb a >> b a jobboldal felé b-vel lépteti a bitjeit, a léptetés baloldalon 0-k lépnek be, az előjel bit megmarad Nulla-feltöltő jobb léptetés a >>> b a jobboldali felé b-vel lépteti a bitjeit, a baloldalon 0-k lépnek be Logikai Rövid (lusta) kiértékelést használ, azaz ha balról jobbra haladva biztosra vehető az eredmény, nem számol tovább. Operátorok:! (negálás) && és vagy 10

11 String A stringekre az összehasonlító operátorokon kívül a konkatenáció operátort (+) is lehet használni. Ez az operátor két stringet összekapcsol és a két operandus uniójaként tér vissza. A rövidített értékadó operátort (+=) itt is használható. Különleges operátorok (ami a fentiekbe nem illik) o feltételes kiértékelés (a? b : c): a logikai értékétől függően b-t, vagy c-t adja, pl: túlsúlyos = (bmi >= 30)? "igen" : "nem o o o o o o o o,: tömbelemek felsorolása delete: objektumtörlése in: objektum bejárása instanceof: objektum típusának lekérdezése new: új objektum létrehozása this: saját objektum typeof: objektum típusának lekérdezése void: kifejezés kiértékelése visszatérési érték nélkül Az operátorok precedenciája: 1. hivás,tag: () []. 2. negáció/növelés:! ~ szorzás/osztás: * / % 4. összeadás/kivonás: eltoló (shift): << >> >>> 6. viszony: < <= > >= 7. egyenlőség: ==!= === 8. bitenkénti és: & 9. bitenkénti kizáró vagy: ^ 10. bitenkénti vagy: 11. logikai és: && 12. logikai vagy: 13. feltételes?: 14. értékadó: = += -= *= /= %= <<= >>= >>>=&= ^= = 15. vessző:, Elágazások Címke A vezérlési szerkezetek fontos eleme, a label (címke) itt is használatos, elsősorban a continue és a break töréspontok adják át ide a vezérlést a 11

12 program normál folyamatából. Mindez persze csak egyetlen függvényen belül érvényes, a JS programkódja önmagában nem képez összefüggő szerkezetet a <script></script> blokkon belül. 4 Ha-akkor-egyébként Az if-then-else (elseif) szerkezet gyakorlatilag minden programozási nyelvben, így a JS-ben is működik. (A JS a then szavacskát megspórolja, de attól még ugyanúgy működik). Amennyiben az if után (zárójelek között) megadott logikai kijezeés értéke igaz, a { között leírt blokk hajtódik végre. Ha van else-ág, akkor ellenkező esetben az, különben az if-blokk utáni parancsok. Abban az esetben, ha több, mint két eset lehet, egyenként felsorolhatóak, kiértékelhetőek a feltételek, vagy tömörebb megoldás az else if használata, bár a hatékonyság szempontjából semmivel sem jobb, mint az előző. Példa, amikor egy függvény kiértékelésének három eredménye is érdekes lehet: var a = somefunction(b, c); if ( a <= 1) { alert("sajnos nem sikerült!"); else if (a == 5 ) { alert("gratulálok, kiváló!"); else { alert("sikeres vizsga!"); Többirányú elágazás Amennyiben sok, és nemcsak logikai lehet a kifejezés értékelhető kimeneteinek száma, az if-ek ismételgetése, vagy egymásba ágyazása eléggé megbonyolíthatja az olvashatóságot és a szerkezetet 5. A switch éppen erre való: ha több kimenetele lehet egy kifejezésnek, amely azonban nem csak logikai, de tetszőleges értéket vehet fel, az egyes értékek esetén külön-külön programblokk futtatható. Ezeket a case direktívák azonosítják. Az itt használatos programblokkok annyiban különböznek a megszokottaktól, hogy itt nem használunk "{" illetve "" 4 Megjegyzem, hogy Assembly szinten valójában csak a címke-ugrás művelet létezik, az összes többi (ciklus, elágazás) csak magasabb szinten konstruált absztrakció. Magasabb szintű nyelvek esetén azért kerülik a közvetlen vezérlés átadást (azaz a goto utasítás használatát), mert a programozó kivételesen durva kárt képes okozni, amennyiben nem megfelelően használja. 5 Az olvashatóság alapvető! Ne feledjük: egyszer írunk egy programot, de talán százszor kell módosítanunk! 12

13 jeleket a blokkok azonosításához, ezt a case jelek megteszik. Amennyiben egyik érték (címke) sem felel meg a kifejezésnek, akkor írhatunk egy alapértelmezett (default) viselkedést, hasonlóan az if parancs else ágának megfelelően. Amennyiben nincs ilyen ág, a program a az if-blokk utáni utasításon folytatódik. Ha bármelyik blokk ráfut a break parancsra, ugyanez történik. Példa: switch (gyümölcs) { case alma : utasítások; break; case körte : utasítások; break; case dinnye : utasítások; break; default: utasítások; Például, ha egy gyümölcsöt adunk el webzöldségesnél, átadhatjuk az elágazásnak a kiválasztott gyümölcsnevet paraméterként: switch (expr) { case "Alma": document.write("alma 400 Ft/kg."); break; case "Körte": document.write("körte 450 Ft/kg."); break; case "Dinnye": document.write("dinnye 650 Ft/kg."); break; default: document.write("bocsi, kifogytunk ebből: " + expr); Ciklusok A ciklusok esetén, nagyon sok nyelvhez hasonlóan megtalálhatóak az előre meghatározott, valamint a feltételes ciklusok is. A feltételes ciklusok esetén az elől-tesztelő és hátul-tesztelő ciklus egyaránt használatos a JS-ben. A ciklusmagoknak nincs terjedelmi korlátja, tetszőleges számú utasításokból (blokkokból) állhatnak A ciklusfeltétel logikai kifejezés, vagy ennek aritmetikailag logikai megfelelője (0, azaz false, illetve nem 0 ) lehet. For ciklus Az elől-tesztelő for addig ismétli a ciklusmagot, amíg a feltétel igazzá nem válik. Működéséhez három paraméter kell, inicializálás, inkrementálás és ciklusfeltétel. Az inicializálásban megadható egy, vagy több értékadás, akár olyan is, amelyek a későbbiekben ciklusváltozóként is használhatóak. A ciklusváltozó hasonlóan más programnyelvekhez - nem csak egyesével, hanem tetszőleges léptékben növelhető. A ciklusfeltétel lehet valamilyen határ, vagy logikai kifejezés is. for ( inicializálás, ciklusfeltétel, inkrementálás ) { ciklusmag 13

14 Ettől nagyszerűbb, hogy a for each...in ciklus egy objektumváltozó értékeire is hivatkozhat a programkód tulajdonságainak Például: var sum = 0; var obj = {t1: 5, t2: 13, t3: 8; for each (var item in obj) { sum += item; print(sum); // az eredmény "26", ami While ciklus Az elöl-tesztelő ciklus először a feltételt ellenőrzi, majd ennek teljesülése esetén végrehajta a ciklusmagban foglalt parancsokat. Ennek teljesítése után úrja ellenőrzi a feltételt és kezdi elölről a (megváltozott paraméterek melletti) ciklust. Ezek szerint ez a ciklus a ciklusmagot (legalább egyszer) csak akkor hajtja végre, ha a feltétel igaz, azaz lehetséges, hogy ez egyszer sem történik meg. while ( feltétel ) { ciklusmag Egy példa 10! kiszámítására: var x = 1; var faktorialis = 1; while { x<=10) { faktorialis*= x; x++; Do...while ciklus A hátul-tesztelő ciklusban mindenképpen lefut egy ciklusmag, majd ellenőrzi ciklusfeltételt. Ha a feltétel igaz, akkor ismét lefuttatja a ciklusmagot. do { ciklusmag while ( feltétel ) Egy másik példa 10! kiszámítására: var x = 0; var faktorialis = 1; do { x++; faktorialis*= x; while ( x <= 10 ); Vezérlésátadó utasítások A végtelen ciklusok elkerülése a break és continue utasítások használatával válik elkerülhetővé a JS-ben. Míg a break kilép a 14

15 ciklusmagból és azután folytatja a program végrehajtását, a continue 6 a ciklus elejéről kezdi a megváltozott környezetnek megfelelően (új esély). Hibakezelés, kivétel-kezelés Ahogy minden programnyelvben, a JS-ben is megoldották a hibakezelést, vagy kivételkezelést. Erre a try-catch-finally trió szolgál. A try utáni blokk a program normál futása esetére szól, a catch egy paraméterben átveszi a hibát, így kezelhetővé, feldolgozhatóvá válik. A finally blokk minden esetben lefut, akár volt hiba, akár nem: try { // Futó program rész catch (error) { // Hiba esetén lefuttatott rész finally { // Minden esetben lefutó program rész Időnként nem elégszünk meg azzal, hogy a böngésző döntse el mi a hiba, mi magunk is generálhatunk, erre szolgál a throw metódus: a try blokkban generálunk egy hibát, amit majd a catch kezel. A throw eldobja, a catch elkapja a kivételt/hibát 7. Ez a megoldás kiváló pl. a funkciógomb lenyomása, mint kivétel kezelésére. <script type="text/javascript"> function checkage() { try { /* ha nem megengedett értéket vinnénk be, hibaüzenet generálódik */ if (document.forms[ eletkor ].kor.value > 99) { throw RangeError; catch (e) { // elkapja és kiíratja a dobott hibát if (e.name=rangeerror) alert("szép kor, gratulálunk!"); </script> <form name= eletkor > Életkor: <input type="text" name="kor" onblur="checkage()"> </form> 6 A jó öreg Fortran visszainteget 7 Ügyvitelszervezők: ugyanezt a filozófiát alkalmazzák az üzleti modellezésben, ld. pl. BizAgi Process Modeler. 15

16 Egyébként, miután a JS mostanára alapértelemezett szkriptnyelvvé vált a böngészők számára, tulajdonképpen elegendő a <script> </script> jelölés is. Hibák típusai EvalError - Az eval() funkció helytelen használata RangeError Egy szám meghaladja a korlátját ReferenceError - Helytelen hivatkozás SyntaxError - Szintaktikai hiba TypeError - A változó típusa nem létezik URIError Az encodeuri() vagy decodeuri() funkciót függvények helytelen használata Függvények A JS egyetlen alprogramot ismer, a függvényt. Amennyiben a függvénynek nincs visszatérési értéke, eljárásként viselkedik. Hogy minél kevesebbet kelljen gépelni, a függvény deklarálásakor minden kihagyható, ami nélkül is egyértelmű a programozói szándék: a visszatérési érték opcionális, a bementi paramétereknek elegendő a nevét megadni, a típusára nincs szükség. Egyszerű példa annak eldöntésére, hogy két szám, logikai változó, vagy string közül melyik a kisebb: function min(a, b) { return a < b? a : b ; Mindig a function kifejezéssel kell kezdeni, azután a függvény neve után a bemeneti paraméterek felsorolása következik. A visszatérési értéket a return utasítás adja. Amennyiben nincs bemeneti paraméter, visszaadott érték, abban az esetben a function f1() { // utasítások alak tökéletesen megfelel. A függvény meghívásához elegendő egyszerűen megadni a nevüket. Bemeneti paraméter lehet bármilyen változó, vagy objektum, így függvény (merthogy, az is objektum) is. Az 16

17 objektum a JS-ben valójában egy névvel, vagyis hivatkozási alappal és tulajdonságokkal ellátott valami. Arguments A függvényhez tartozik egy arguments nevű tömb, amely a függvény végrehajtása során elérhető és kiolvasható. Ez nagyon hasznos pl. olyankor, amikor a függvény deklarálásakor leginkább akkor hasznos, ha nem tudjuk a függvény deklarálásakor még nem ismert a bemeneti paraméterek száma: function osszefuz(elvalaszto) { var kimenet = ""; for (var i=1; i< arguments.length; i++) { // arguments.length a bementi paraméterek száma kimenet = kimenet + arguments[i] + elvalaszto; return kimenet; osszefuz("-", "össze", "fűzött", "string", "készült"); // kimenet: össze-fűzött-string-készült Fontos, hogy az argumentumlista indexelése itt is 0-val kezdődik! Az ellenkező véglet, amikor több bemeneti paraméter lett deklarálva a függvény számára, mint ami a híváskor meg lett adva. Ilyenkor a meg nem adott paraméterek értéke egyszerűen undefined lesz, ugyanakkor ez semmilyen problémát nem okoz a függvény lelkivilágának. Kezelhető ez a kérdés alapértelmezett paraméter értékekkel: function kivagy(arg0, arg1){ arg1 = arg1 "Senki"; // itt Senki a default érték return arg0+ +arg1; Nev=kivagy( Nevem ); // Nev: Nevem Senki A függvény saját magát is meghívhatja (rekurzív hívás). Jó példa erre a egy egész szám faktoriálisának kiszámolása. function faktorialis(n) { if ( n==0 n==1 ) return 1; else { var eredmeny = ( n * faktorialis(n-1) ); return eredmeny; 17

18 faktorialis(5); // ekkor 4 rekurzív hívás után, az eredmény 120 A JS globális és speciális függvényeit és eljárásait érdemes a oldalon tanulmányozni. A HTML és a JavaScript összekapcsolása A JavaScript erőssége a HTML-lel való harmonikus együttműködés - a bépített függvényeket, vezérlési szerkezeteket más nyelvek is tudják. A JS a HTML-lel ellentétben - megkülönbözteti a kis- és nagybetűket, erre mindenképpen oda kell figyelni! A JS a HTML-hez az egyes objektumok tulajdonságai révén kapcsolódik. A HTML-objektumok észlelnek eseményeket, amelyek aktiválnak metódusokat a JS esetében függvényeket. Innen pedig nincs megállás, hiszen a függvény újabb függvényt hívhat, deklarálhat változót, műveleteket végezhet rajtuk, stb. Az események beköveztekor a hozzájuk rendelt függvényt a futtató környezet, azaz a böngésző által támogatott eljárásokat, függvényeket használja. A JavaScript a következő módszerekkel használható a HTML dokumentumon belül: A <script> tagba beírva a kódot: <script> function f1() { alert('meghívták az f1-függvényt!'); </script> <form> <button name='nyomógomb' onclick='f1()'>kattints rám</button> </form> Egy másik példa, amikor az oldal teljes betöltődéséről fontos információt kapni, mert valamely eseményt ehhez kell időzíteni (a túl sok objektumot tartalmazó oldal esetén fontos lehet): <!DOCTYPE html> <html> 18

19 <head> <script> function betoltve() { alert("a lap végre betöltődött!"); </script> </head> <body onload="betoltve()"> <h1>szép napunk van!</h1> </body> </html> Ugyanez az esemény JS függvényen belül a window.onload=fv() módszerrel kezelhető. A <body>, <frame>, <frameset>, <iframe>, <img>, <input type="image">, <link>, <script>, <style> objektumok érzékelik ezt az eseményt. Külön fájlba írjva a kódot, és erre hivatkozva a HTML fájlban (ekkor nem zavarja a HTML-kód áttekinthetőségét a másfajta nyelvű szöveg): Ekkor a függvényeket a beágyazott külső fájl tartalmazza (ez több függvény esetén egyébként a javasolt megoldás). Az ilyen beágyazott szövegfájl kiterjesztése kötelezően.js! <script src="tobbhelyenishasznalom.js"></script> A HTML tag eseménykezelőjeként: <form id='f_01'> <input type="button" value="kerekecske gombocska" onclick="alert('mi a manó?!')" /> </form> Egy másik példa egy esemény késleltetésére: 19

20 <input type="button" value="click me" onclick="settimeout('window.alert(\'hello!\')', 2000)" /> Nem csak az egyes HTML-tageknek, hanem a hierarchiában magasabban álló objektumoknak is vannak eseményei, azaz belépési pontjai. HTML DOM A DOM fogalma HTML leképeződése a DOM-ban Objektumok, fa struktúra Node típusok (element, attribute, textnode) Különböző típusú attribútumok és azok megadása, módosítása (pl. tagname, style, onclick) A DOM bejárása parentnode, firstchild, childnodes, nextsibling getelementbyid(), getelementsbytagname() Elemek létrehozása, törlése HTML kód hozzáadásával (document.write vs. innerhtml) Objektumok létrehozásával (createelement, createattribute, appendchild, removechild, insertbefore) A DOM (Document Object Model) A Document Object Model olyan platform- és nyelvfüggetlen programozási interfész (API), amely a dokumentumok (HTML, XML, XHTML, stb.) tartalom, szerkezet és stílus-használatát, vagy annak módosítását támogatja. Meghatározza a dokumentumok szerkezetét és az annak elemeivel végezhető műveleteket, valamint az objektumok kölcsönhatásait. A DOM az objektumok egymással szülő-gyerek-testvér kapcsolatban álló rendszere. A dokumentum tartalmát, valamint a dokumentum objektumainak eseményeit, azok eljárásait írja le. Az objektumok kezelése böngészőnként különböző lehet. A DOM története kapcsolódik a böngészőháborúként is elhíresült, az 1990-es évek végén a Netscape Navigator és a Microsoft Internet Explorer, illetve ezáltal a JavaScript és a VBScript között zajló versengéssel. E szkriptnyelvek voltak az elsők a később széleskörűen elterjedt, a böngészők által felismert és támogatott dokumentumok között. Egy kis történelem (A Wiki nyomán): 20

21 Legacy DOM A JavaScript 1996-ban jelent meg a Netscape Communications által bemutatott Netscape Navigator 2.0-ás verziójában. A Netscape versenytársa a Microsoft szintén ebben az évben mutatta be az Internet Explorer 3.0-ás verzióját, amely a JavaScript egy változatát a JScript-et használta. A JavaScript és a JScript segétségével a webfejlesztők olyan weboldalakat hozhattak létre, melyeken kliens-oldali interakciókra is lehetőség van (ez volt a WEB 2.0 bölcsője). A felhasználó által generált események detektálásának és a HTML dokumentumok módosításának korlátozott lehetőségei végül "DOM Level 0", vagy "Legacy DOM" néven váltak ismerté, melyek ezen nyelvek első generációi voltak. Egyedi szabványt nem fejlesztettek ki a DOM Level 0 számára, de a HTML4 specifikációja már részben leírta ezt is. Ez a korai DOM verzió korlátozva volt a HTML-elemek elérésében. A HTMLűrlap, hivatkozás és kép elemek egyaránt elérhetővé váltak egy hierarchia szerint. A hivatkozás a dokumentum gyökér objektumával kezdődött, továbbá használható volt akár a neve, akár a bejárni kívánt elemek sorrendi indexe által. Egy űrlap eleme elérhető akár a "document.urlapnev.bevitelimezonev", vagy akár a document.forms[0].elements[0]" formában is. Intermediate DOM 1997-ben a Netscape és a Microsoft bemutatta a Netscape Navigator, illetőleg az Internet Explorer 4.0-ás verzióit, amelyek már támogatták a Dynamic HTML-t (DHTML). Ennek lényege, hogy Módosítani lehet egy már betöltött HTML dokumentumot. A DOM ezen verziói "Intermediate DOM" néven váltak ismertté. Ezen verziók által már lehetőség nyílt a CSS tulajdonságok manipulálására is, így befolyásolhatóvá vált a dokumentumok megjelenése. Sőt mi több hozzáférést biztosítottak egy új funkcióhoz, az ún. "rétegek"-hez, a "document.layers" (Netscape Navigator) és a "document.all" (Internet Explorer) tulajdonságok által. Az alapvető inkompatibilitási problémák miatt a böngésző-független webfejlesztés különleges figyelmet igényelt minden támogatott böngésző esetén. Szabványosítás Az 1994-ben alapított World Wide Web Consortium (W3C), amely nyílt szabványokat támogat a világháló számára, összehozta a Netscape Communications-t, a Microsoft-ot és más cégeket, hogy kifejlesszenek egy szabványt a webböngészőkben használatos szkript nyelvek számára, így alakult ki az "ECMAScript". A szabvány első verziója 1997-ben látott napvilágot. Az ezt követő JavaScript és JScript kiadások, így a nagyobb böngésző függetlenség érdekében megvalósíthatták az ECMAScript szabványt. Az ECMAScript megjelenése után a W3C elkezdett dolgozni a DOM szabányosításán. A kezdeti eredmények voltak az ún. "DOM Level 1", amelyet 21

22 1998 végén terjesztett elő a W3C. Körülbelül ugyanekkor az Internet Explorer 5.0 szállított korlátozott támogatást a DOM Level 1-hez. Ez a verzió már teljes modellt biztosított a teljes HTML és XML dokumentum számára, beleértve a dokumentumok bármely részének megváltoztatásához szükséges eszközöket is. A nem konform böngészők, mint az Internet Explorer 4.x és a Netscape 4.x még ekkortájt, a 2000-es év végén is széleskörben elterjedtek voltak. A DOM Level 2. bevezette a "getelementbyid" funkciót, valamint az esemény modellt és támogatta az XML névtereket és a CSS-t. A DOM Level 3 támogatja az XPath-t és a billentyűzet eseménykezelését, valamint egy interfészt a dokumentumok XML-eléréséhez. A W3C-féle DOM nagy részét támogatják az átlagos ECMAScript támogatással rendelkező WEB-böngészők, mint a Microsoft Internet Explorer, az Opera, a Safari, valamint a Gecko-alapú böngészők, mint a Mozilla Firefox, a SeaMonkey és a Camino körében. Alkalmazásai Mivel a DOM mindkét-irányú navigációt támogatja (szülő és az előző testvér felé is) és lehetővé teszi a változtatást tetszőleges helyen, az implementációban pufferelni kell a beolvasott dokumentumot (vagy annak értelmezett részét). Ebből következik, hogy a DOM leginkább olyan alkalmazások kezelésére alkalmas, ahol ismételt és nem szekvenciális sorrendű hozzáférés történik a dokumentumhoz. Amennyiben egy alkalmazás szigorúan szekvenciális és egyszer futó, a SAX modell valószínűleg gyorsabb és kevesebb memóriát használ. Webböngészők A webböngészők rendszerint a DOM-hoz hasonló belső modellt használnak a dokumentumok (például egy HTML oldal) megjelenítéséhez. A DOM API-kat weboldalak, illetve egyes részeik JavaScript kódból történő vizsgálására, vagy módosítására is használják. Más szóval, a Dokumentum Objektum Modell az a mód, ahogyan a JavaScript látja a webböngésző állapotait és az általa megjelenített HTML oldalt. Amikor egy böngésző megjelenít egy HTML oldalt, akkor legelőször betölti az oldalt a web-szerverről, majd értelmezi a jelöléseit (pl. HTML) és létrehozza a modellt a memóriában tárolt DOM formájában. Minden dokumentum csomópontjai fa struktúrába vannak szervezve, ezt hívjuk DOM fának. A legfelső csomópont a DOM fában a Dokumentum (Document) objektum. Minden csomópont tetszőleges számú - nulla, vagy több - gyerekkel rendelkezhet. Böngészőmotorok A webböngészők ún. böngészőmotorokra támaszkodnak a HTML dokumentumok Dokumentum Objektum Modellé alakítása során. Némely 22

23 A HTML DOM ilyen motor, mint a Trident/MSHTML és a Presto alapvetően egy adott böngészőhöz tartoznak, mint az Internet Explorer és az Opera. Mások, mint a WebKit és a Gecko számos böngészőben teljesítenek szolgálatot, mint a Google Chrome, a Firefox és a Safari. A különböző böngészőmotorok általában mind eltérő fokú figyelmet fordítanak a DOM szabványok pontos betartására. A HTML DOM szerint a HTML dokumentumok fa szerkezetűek. A legmagasabb szint maga window objektum, amelyhez közvetlenül egy documentum node tartozik. A szerkezet az úgynevezett Node Tree (csomópont-fa): HTML DOM fa példa HMTL DOM Dokumentum Gyökér elem: <html> Elem: <head> Elem: <body> Elem: <title> Elem <h1> Elem: <img> Elem: <a> Elem: <form> Szöveg: "Oldal címe" Szöveg: "Fejléc" Tulajdonság: "src" Tulajdonság: "href" Szöveg: <link> Tulajdonság: "action" Elem: <input> Tulajdonság: "type" Tulajdonság: "name" Viselkedés: "onclick" A csomópontok (Node-ok) hierarchikus kapcsolatban állnak, eszerint vannak szülők, gyerek és testvérek. A mellékelt ábrán a <form> csomópont a <body> gyermeke, testvére az anchor (horgony) <a>, gyermeke az <input>. A csomópontok (node-ok) típusai egy HTML dokumentumban document a document elemei az elemek attribútumai text (a node tartalma) megjegyzés A document elemei: 23

24 Anchor Area Base Body Button Form Frame/IFrame Frameset Image Input Button Input Checkbox Input File Input Hidden Input Password Input Radio Input Reset Input Submit Input Text Link Meta Object Option Select Style Table td / th tr Textarea Az egyes elemek tulajdonságai, azok lekérdezése, módosítása: tulajdonság attributes[] leírás Visszatérési értéke a NamedNodeMap tömb, amely a node összes attribútumát tartalmazza. Firefox esetén csak a felhasználó által definált tulajdonságok, míg IE esetén a DTD 8 -ben definiált belső tulajdonságokat is tartalmazza. A tömb tartalmazza az attribútum nevét és aktuális értékét. példa: var imageattributes=document.getelementbyid("myimage").attribu tes imageattributes[0].name // "myimage" első attribútumának neve imageattributes[0].value // "myimage" első attribútumának értéke imageattributes.getnameditem("src").value // "myimage" 8 Document Type Definition, elsősorban XML dokumentumok szabványosítására szolgál 24

25 "src"-nevű attribútumának értéke childnodes[] classname A node összes gyermek-node-jait adja vissza. A "nodename" and "nodetype" tulajdonságok is használhatóak. példa: //<ul> node esetére var mylist=document.getelementbyid("mylist") for (i=0; i<mylist.childnodes.length; i++){ if (mylist.childnodes[i].nodename=="li") //valamit lehet tenni a lista elemmel A node CSS class attribútuma. Read/write. példa: document.getelementbyid("test").classname="class1" //a class1 osztály nevének hozzárendelés a node-hoz document.getelementbyid("test").classname+=" class2" //az osztály módosítása clientwidth A böngészőablak hasznos (felhasználható) felületének szélessége a szegély, margó, csúszka (scrollbar) objektumokat nem tartalmazza. példa: var pagewidth=document.body.clientwidth clientheight dir A böngészőablak hasznos (felhasználható) felületének magassága a szegély, margó, csúszka (scrollbar) objektumokat nem tartalmazza. A szövegirány az objektumban. Értékei a "ltr" (left to right) vagy a "rtl" (right to left). Alapértelemzésben "ltr." Read/write példa: document.getelementbyid("mydiv").dir="rtl" //szövegirány megváltoztatása firstchild id innerhtml A node első (legbaloldalibb) gyermek node-ja. A node id azonosítója. Praktikus megadni a könnyű elérhetőség érdekében. Read/write Miután az oldal teljesen betöltődött, a node belső tartamának elérésére/megváltoztatására szolgál. Read/write. példa: 25

26 <p><b>old paragraph text</b></p> <script type="text/javascript"> window.onload=function(){ document.getelementsbytagname("p")[0].innerhtml="<b>new paragraph text</b>" </script> lang lastchild localname namespaceuri nextsibling nodename A node nyelvi attribútuma. Többnyire a <body> alapnyelvének meghatározására, illetve az attól eltérő egyes node-ok nyelvének meghatározására használatos. Read/write. A node utolsó (legjobboldalibb) gyermeke node-ja. Egy XML node neve (hasonló, mint HTML DOM esetén a nodename). Egy XML node xmlns attribútumához rendelt URI string. A (jobbra) következő testvér node ugyanazon szülő esetén A node neve (nagybetűvel). példa: if (document.getelementbyid("test").firstchild.nodename=="div ") alert("ez egy DIV objektum.") nodetype A node típusa. A node típusokról ld. bővebben: példa: alert(document.getelementbyid("adiv").nodetype) //DIV esetén 1 nodevalue A node értéke (amennyiben van neki, egyébként null). Szöveget tartalmazó node esetén a visszatérő érték a text, míg a value. Document és element esetén null. A text, illetve value értéke lekérdezésére, módosítására használatos. Read/write példa: <body> <div id="test">old text</div> <script type="text/javascript"> 26

27 if (document.getelementbyid("test").firstchild.nodename=="#te xt") document.getelementbyid("test").firstchild.nodevalue="new text" </script> offsetleft offsettop offsetparent A node-ot magába foglaló container objektum (pl. DIV or TABLE) bal oldali széléhez képesti relatív baloldali offset érték. A magába foglaló elemre az offsetparent attribútummal lehet hivatkozni. A node-ot magába foglaló container objektum (pl. DIV or TABLE) bal oldali széléhez képesti relatív felülről számított offset érték. A magába foglaló elemre az offsetparent attribútummal lehet hivatkozni. Egy elem offset container-je, azaz az őt magába foglaló objektum. Többnyire egy BODY, DIV, illetve TABLE. példa: <body> <div id="master" style="position: relative"> <div id="slave" style="position: relative">test</div> </div> <script type="text/javascript"> alert(document.getelementbyid("slave").offsetparent.id) //alerts "master" </script> offsetwidth Egy elem szélessége kerettel együtt. offsetheight Egy elem magassága kerettel együtt. ownerdocument A node-ot tartalmazó document, mint node. parentnode A szülő node. prefix Az XML node namespace előtagja (xmlns), ha van ilyen. A namespace az azonos típusú node-ok megkülönböztetése miatt hasznos. példa: <root> <h:table xmlns:h=" <h:tr> <h:td>apples</h:td> <h:td>bananas</h:td> 27

28 </h:tr> </h:table> <f:table xmlns:f=" <f:name>african Coffee Table</f:name> <f:width>80</f:width> <f:length>120</f:length> </f:table> previoussibling scrollleft scrolltop </root> Az előző (baloldali) testvér node), ha van ilyen, egyébként null. Mennyire kellene balra scrollozni egy BODY, DIV, vagy textarea objektumban, hogy az elvileg látható és az aktuális baloldali él egybeessen. Mennyire kellene balra scrollozni egy BODY, DIV, vagy textarea objektumban, hogy az elvileg látható és az aktuális felső él egybeessen. példa: <div id="static" style="width:150px; height:150px; position: absolute; border:1px solid yellow; left: 5px;">vaalmi szöveg</div> <script type="text/javascript"> setinterval("document.getelementbyid('static').style.top=d ocument.body.scrolltop+10+'px'", 50) </script> scrollheight scrollwidth style tabindex tagname Az objektum scrollozható magassága. Függőleges scrollbar (csúszka) hiányában értéke megegyezik a clientheight-tel. Az objektum scrollozható szélessége. Vízsztintes scrollbar (csúszka) hiányában értéke megegyezik a clientwidth-tel. Egy elem style objektumának elérésére, illetve egyes attribútumainak módosítására szolgál. Mókás dolgokra is alkalmas, ld. menekülő submit gombok. Read/write. példa: document.getelementbyid("test").style.backgroundcolor="yel low" Az adott objektum tabulátorral való elérése értékének lekérdezésére/módosítására szolgál. Read/write. Egy HTML tag nevének lekérdezésére szolgál. példa: <!DOCTYPE html> <html> 28

29 <body> <pp id="demo" >Click the button to display the tag name of this element<br></pp> <button onclick="myfunction()">try it</button> <script> function myfunction() { var x=document.getelementbyid("demo"); x.innerhtml=x.tagname; </script> title </body> </html> A document címének, title attribútumának lekérdezésére szolgál. Read/write A HTML DOM elemek eseményeinek kezelésére szolgáló leggyakrabban használt függvények: metódus Leírás (visszatérési értéke) getelementbyid() Az ID azonosítójú elemet adja vissza. Példa: var element=document.getelementbyid("intro"); getelementsbytagname() getelementsbyclassname() appendchild() removechild() replacechild() Adott nevű node-ok listájáját tömbként (vektorként) adja vissza, az egyes elemek indexszel hivatkozhatóak (ld. még névtér használata). Példa: var tagnames=document.getelementsbytagname(tagname) Az adott class attribútummal rendelkező node-ok tömbje. Példa: elements = document.getelementsbyclassname(names); Gyermek node hozzáadása az adott node-hoz. Példa: document.getelementbyid("mylist").appendchild(new ListItem); Adott gyermek node eltávolítása. Példa: var list=document.getelementbyid("mylist"); list.removechild(list.childnodes[0]); Gyermek node lecserélése. Példa: document.getelementbyid("mylist").replacechild(ne 29

30 insertbefore() createattribute() createelement() createtextnode() getattribute() setattribute() wnode,oldnode); Adott gyermek node elé beszúr egy új gyermek node-ot. Példa: var node=document.getelementbyid("mylist2").lastchild ; var list=document.getelementbyid("mylist1"); list.insertbefore(node,list.childnodes[0]); Adott node-hoz újabb attribútumot rendel. Példa: var att=document.createattribute("class"); att.value="democlass"; document.getelementsbytagname("h1")[0].setattribu tenode(att); Element node létrehozása. Példa: var btn=document.createelement("button") var t=document.createtextnode("click ME"); btn.appendchild(t); Text node létrehozása. Példa: Ld. fent. Adott node megnevezettt attribútuma. Példa: document.getelementsbytagname("a")[0].getattribut e("target"); Adott node megvezetett attribútumának meghatározása, vagy megváltoztatása. Példa: (beviteli mező nyomógombbá változtatása) document.getelementsbytagname("input")[0].setattr ibute("type","button"); DOM események A HTML oldalak objektumai eseményeket képesek észlelni. Ilyen a kattintás, a beviteli mezők manipulálása, oldalak betöltée, oldalak elhagyása, egér- és billetnyűzet események, stb. A DOM definiálja a kiváltható eseményeket és előírja, hogy az egyes eseménytípusok mely elemekre érvényesek és milyen körülmények között jönnek létre. Ezeket az eseményeket persze a megfelelő szkript-függvényekkel kezelni is lehet, ha már definiálva lettek az elemnél. Néhány gyakran használt és kezelt esemény: Abort A felhasználó megszakította a letöltést. 30

31 Ha a letöltés alapvető az oldal használatához (például olyan nagyméretű grafika, amely nélkül értelmezhetetlen az oldal) akkor ezt az eseményt figyelve figyelmeztethető a felhasználót. Az eseménykezelő: onabort. Blur Az ablakra (Window) és minden űrlapelemre érvényes esemény akkor esik meg ha, a felhasználó elveszi a beviteli fókuszt az elemről (tabulátor, vagy egér használatával). Ellenőrizhető vele az input helyessége, akár alapértelmezett adatra is cserélhető, ha az nem helyes. Több megnyitott ablak esetén a lejátszás felfüggesztésére is használható (pl. video lejátszásánál, ha a felhasználó más ablakra vált). Az eseménykezelő: onblur. Change Beviteli mezőkre és legördülő mezőkre érvényes, módosításakor történik. Használható akár a bevitel ellenőrzésére, vagy konzisztencia ellenőrzés futtatására Az eseménykezelő: onchange. Click Kattintásra érzékeny elemek (bevitelre szolgáló, illetve akciót kiváltó elemek esetén) kattintásának észlelésére szolgál. Link aktiválása esetén is működik. Egyes alkalmazások megkülönböztetik a DblClick és a RightClick eseményeket is. Az eseménykezelő: onclick. Error Letöltéskor fordulhat elő. Igazából letöltési ellenőrző összeget hasonlítja össze az elvárttal, de a hiba okáról nem tudunk meg túl sokat. Az eseménykezelő: onerror. Focus A beviteli elem fókuszba kerüléskor lép fel. Kezelésekor érdemes összehangolni a Blur eseménnyel. Az eseménykezelő: onfocus. KeyDown Billentyű lenyomásakor jelentkezik, de csak a lenyomáskor! A lenyomott billentyű lekérdezhető. Óvatosan kezelendő, lásd még a KeyUp és KeyPress eseményeket! Az eseménykezelő: onkeydown. 31

32 KeyUp Billentyű lenyomás utáni felengedése. A felengedett billentyű lekérdezhető. Különösen terrorista filmekben alkalmazzák a kézigránát elengedésekor. (Ez vicc volt!) Az eseménykezelő: onkeyup. KeyPress Ha a KeyDown, KeyUp események nem aktívak, használható. A használt billentyű lekérdezhető. Az eseménykezelő: onkeypress. Load A dokumentum teljes dokumentum betöltése után lép fel. Az eseménykezelő: onload. Unload Az oldal elhagyásakor lép fel. Az eseménykezelő: onunload. MouseDown A baloldali egérgomb lenyomásakor aktivizálódik (ld. KeyPress). Okostelefonos alkalmazás esetén nem érdemes használni (ahogy a többi egéreseményt sem). Az eseménykezelő: onmousedown. MouseUp A baloldali egérgomb felengedésekor aktivizálódik (ld. KeyUp). Az eseménykezelő: onmouseup. MouseOver Nagyon hasznos esemény, kiemelhető vele egy-egy objektum fölösleges kattintgatás nélkül. Az eseménykezelő: onmouseover. MouseOut Fellép, amikor az egér elkerül az objektumról. A MouseOver eseménnyel összhangban szokták használni. Az eseménykezelő: onmouseout. Move Ablakok mozgatása esetén lép aktivizálódik. Az eseménykezelő: onmove. 32

33 Submit Űrlap kitöltésének végső mozdulata. Ilyenkor még megerősítheti a felhasználó a szándékát, rákérdezhető, hogy pl. Biztos benne?. Az eseménykezelő: onsubmit. PHP és JavaScript közötti (egyszeri, egyirányú) adatátadás megvalósítása Az alábbi példa PHP-szkriptje beolvassa a szerveren lévő pontok.txt tartalmát és átadja egy JavaScript változónak, ami a továbbiakban helyi változóként kezeli azokat. A pontok.txt tartalma: A HTML (PHP+JS) forrása: <html> <head> <script> /* **************************************************** A PHP által átadott értékeket megszorozza az input mezőben megadott számmal. Az eredményt kirajzolja grafikon formájában. ****************************************************** */ <?php?> echo "var pontok = Array("; $p=file('pontok.txt'); for($i=0; $i<sizeof($p); $i++) { if($i>0) echo ","; echo trim($p[$i]); echo ");" function oszlop(szam) { var szorzo = szam.value*1; var lap=document.getelementbyid('rajzlap'); lap.innerhtml=""; 33

34 for(i=0;i<pontok.length;i++) { d=document.createelement('div'); d.style.left=i*25+'px'; d.style.height=pontok[i]*szorzo+"px"; lap.appendchild(d); </script> <style> #rajzlap {position:relative; background:#eee; width:600px; height:300px; #rajzlap div {position:absolute; background:green; width:20px; bottom:0px; </style> </head> <body> <form> Szorzó: <input type='text' name='szam' value='2'> <input type='button' value='mutasd' onclick='oszlop(szam)'> </form> <div id='rajzlap'></div> </body> </html> HTML és CSS haladóbb szinten A HTML5 alapjai Áttekintés A HTML5 szabvány a statikus weblapok dinamikussá alakítását szolgálják. Céljuk egyrészt a felhasználói élmény fokozása (ezt a célt tűzte ki az AJAX, valamint a DHTML, azaz a JavaScript+CSS3 együttes használata is), másrészt a minél egyszerűbb weboldal-készítés támogatása. Ennek részben ellentmond, hogy újabb és újabb függvényeket vezetnek be, amelyek szintaktikáját és paraméterezését mégis csak támogatni kell a böngészők újabb verzióinak, valamint a fejlesztőknek is meg kell tanulni, így a tanulás nélküli tudás megszerzéséhez valószínűleg nem ez az út vezet. Ugyan a W3C-szerint a HTML5 abszolút kompatibilis a korábbi, azaz HTML4 verzióval (egyes leírások szerint elég a <html..> tagben a verziószámot átjavítani és máris HTML5 dokumentumunk van,) azok a tagek, amelyek csak a 4-ben szerepelnek de az 5-ben nem, ennek ellentmondani látszanak. Az űrlapok kialakítása a hagyományos HTML-szerkezet szerint történik, de használatukhoz szükséges valamilyen szkript-nyelv. 34

35 A HTML4 és HTML5 tagjainek keresztreferenciája Az alábbi táblázat a HTML4 és HTML5 közös, új, illetve elárvult tagjait tartalmazza (Weblapguru). tag leírás HTMLverzió <!-- --> komment 4 / 5 nincs <!DOCTYPE> dokumentum típus 4 / 5 nincs attribútum-lista <a> hivatkozás 4 / 5 href hreflang media rel target type <abbr> rövidítés 4 / 5 <acronym> mozaikszó 4 - <address> cím 4 / 5 <applet> beágyazott elem 4 - kép térképen belüli alt coords href hreflang media rel <area> 4 / 5 tartalom shape target type <article> cikk 5 <aside> mellékes tartalom 5 <audio> hang tartalom 5 autoplay controls loop preload src <b> félkövér szöveg 4 / 5 <base> kiindulási URL 4 / 5 href target <basefont> alapértelmezett szövegformázás 4 - <bdo> szövegirány 4 / 5 dir <big> nagy szövegméret 4-35

36 tag leírás HTMLverzió attribútum-lista <blocquote> hosszú idézet 4 / 5 cite <body> body 4 / 5 <br> sortörés 4 / 5 <button> nyomógomb 4 / 5 autofocus disabled form formaction formenctype formmethod formnovalidate formtarget name type value <canvas> rajzterület(vászon) 5 height width <caption> táblázat felirat 4 / 5 <center> középre igazítás 4 - <cite> idézet 4 / 5 <code> forráskód szöveg 4 / 5 <col> táblázat oszlop 4 / 5 span <colgroup> csoportos táblázat oszlop <command> parancsgomb 5 <datalist> lenyílólista 5 <dd> leírás 4 / 5 4 / 5 span checked default disabled icon label radiogroup type 36

37 tag leírás HTMLverzió attribútum-lista <del> törölt szöveg 4 / 5 cite datetime <details> elem leírása 5 open <dir> könyvtárlista 4 - <dfn> kifejezés meghatározás <div> doboz 4 / 5 <dl> meghatározás lista 4 / 5 <dt> kifejezés meghatározás 4 / 5 title 4 / 5 <em> kiemelt szöveg 4 / 5 <embed> beágyazott elem 5 height src type width <fieldset> formpanel 4 / 5 disabled form name <figcaption> ábra felirat 5 <figure> ábra 5 <font> szövegformázás 4 - <footer> lábléc 5 37

38 tag leírás HTMLverzió attribútum-lista <form> űrlap 4 / 5 accept-charset action autocomplete enctype method name novalidate target <frame> keret 4 - <frameset> keretes oldalszerkezet 4 - <h1>..<h6> címsor 4 / 5 <head> dokumentumfej 4 / 5 none <header> fejléc 5 <hgroup> címsorcsoportosító 5 <hr> elválasztóvonal 4 / 5 <html> html dokumentum 4 / 5 manifest xmlns <i> dőlt betű 4 / 5 <iframe> beágyazott ablak 4 / 5 src name sandbox seamless srcdoc width height <img> kép 4 / 5 alt src height ismap usemap width <input> beviteli mező 4 / 5 accept alt autocomplete autofocus checked disabled form formaction formenctype formmethod formnovalidate formtarget height list max maxlength min multiple name pattern placeholder readonly required size src step type value width 38

Szabadkai Műszaki Szakfőiskola. Web programozás. dr Zlatko Čović chole@vts.su.ac.rs

Szabadkai Műszaki Szakfőiskola. Web programozás. dr Zlatko Čović chole@vts.su.ac.rs Szabadkai Műszaki Szakfőiskola Web programozás dr Zlatko Čović chole@vts.su.ac.rs 1 DOM események (events) JavaScriptben interaktív programok készítésére az események által vezérelt programozási modellt

Részletesebben

"Egységes erdélyi felnőttképzés Kárpát-medencei hálózatban" JAVA ALAPÚ WEBPROGRAMOZÁS. M6 Modul: A DOM Modell

Egységes erdélyi felnőttképzés Kárpát-medencei hálózatban JAVA ALAPÚ WEBPROGRAMOZÁS. M6 Modul: A DOM Modell "Egységes erdélyi felnőttképzés Kárpát-medencei hálózatban" JAVA ALAPÚ WEBPROGRAMOZÁS M6 Modul: A DOM Modell Bevezető - platform- és nyelvfüggetlen programozási interfész - tartalom-, szerkezet- és stílus-elérés/módosítás

Részletesebben

A JavaScript főbb tulajdonságai

A JavaScript főbb tulajdonságai JavaScript alapok A JavaScript főbb tulajdonságai Script nyelv azaz futás közben értelmezett, interpretált nyelv Legfőbb alkalmazási területe: a HTML dokumentumok dinamikussá, interaktívvá tétele Gyengén

Részletesebben

Webprogramozás szakkör

Webprogramozás szakkör Webprogramozás szakkör Előadás 5 (2012.04.09) Programozás alapok Eddig amit láttunk: Programozás lépései o Feladat leírása (specifikáció) o Algoritmizálás, tervezés (folyamatábra, pszeudokód) o Programozás

Részletesebben

Az alábbi kód egy JSON objektumot definiál, amiből az adtokat JavaScript segítségével a weboldal tartalmába ágyazzuk.

Az alábbi kód egy JSON objektumot definiál, amiből az adtokat JavaScript segítségével a weboldal tartalmába ágyazzuk. JSON tutorial Készítette: Cyber Zero Web: www.cyberzero.tk E-mail: cyberzero@freemail.hu Msn: cyberzero@mailpont.hu Skype: cyberzero_cz Fb: https://www.facebook.com/cyberzero.cz BEVEZETÉS: A JSON (JavaScript

Részletesebben

Java II. I A Java programozási nyelv alapelemei

Java II. I A Java programozási nyelv alapelemei Java II. I A Java programozási nyelv alapelemei Miskolci Egyetem Általános Informatikai Tanszék Utolsó módosítás: 2008. 02. 19. Java II.: Alapelemek JAVA2 / 1 A Java formalizmusa A C, illetve az annak

Részletesebben

Multimédia 2017/2018 II.

Multimédia 2017/2018 II. Multimédia 2017/2018 II. 1. gyakorlat HTML5, CSS3 alapok Alapvető HTML5 elemek Egyszerű HTML dokumentum Oldal cime

Részletesebben

Szkriptnyelvek. 1. UNIX shell

Szkriptnyelvek. 1. UNIX shell Szkriptnyelvek 1. UNIX shell Szkriptek futtatása Parancsértelmez ő shell script neve paraméterek shell script neve paraméterek Ebben az esetben a szkript tartalmazza a parancsértelmezőt: #!/bin/bash Szkriptek

Részletesebben

AWK programozás, minták, vezérlési szerkezetek

AWK programozás, minták, vezérlési szerkezetek 10 AWK programozás, minták, vezérlési szerkezetek AWK adatvezérelt szkriptnyelv text processing, adat kiterjesztés, tagolt adatok automatizált soronkénti feldolgozása a forrásállományt soronként beolvassa

Részletesebben

PHP alapjai, bevezetés. Vincze Dávid Miskolci Egyetem, IIT

PHP alapjai, bevezetés. Vincze Dávid Miskolci Egyetem, IIT alapjai, bevezetés Vincze Dávid Miskolci Egyetem, IIT vincze.david@iit.uni-miskolc.hu PHP Personal Home Page (Tools) Script nyelv -> interpretált Elsősorban weboldal (dinamikus) tartalmak előállítására

Részletesebben

Az image objektum. Az image eseménykezel i. Képek el zetes betöltése. Feladat. Váltóképek készítése

Az image objektum. Az image eseménykezel i. Képek el zetes betöltése. Feladat. Váltóképek készítése Az image objektum Multimédiás alkalmazások készítése JavaScript segítségével webprogramozó a document leszármazottja az images tömbön keresztül érhet el complete : teljesen letölt dött-e? height, width

Részletesebben

Bevezetés Működési elv AJAX keretrendszerek AJAX

Bevezetés Működési elv AJAX keretrendszerek AJAX AJAX Áttekintés Bevezetés Működési elv AJAX-ot támogató keretrendszerek Áttekintés Bevezetés Működési elv AJAX-ot támogató keretrendszerek Áttekintés Bevezetés Működési elv AJAX-ot támogató keretrendszerek

Részletesebben

12.óra jquery Framework #1. Gyimesi Ákos

12.óra jquery Framework #1. Gyimesi Ákos 12.óra jquery Framework #1 Gyimesi Ákos gyimesi.akos@gmail.com http://webprog.gy-i-m.com 12.óra jquery Framework #1 Miről lesz szó? JavaScript nyelv alapjai plusz: a JavaScript objektummodellje JavaScript

Részletesebben

Szoftvertechnológia alapjai Java előadások

Szoftvertechnológia alapjai Java előadások Szoftvertechnológia alapjai Java előadások Förhécz András, doktorandusz e-mail: fandrew@mit.bme.hu tárgy honlap: http://home.mit.bme.hu/~fandrew/szofttech_hu.html A mai előadás tartalma: Miért pont Java?

Részletesebben

Járműfedélzeti rendszerek II. 1. előadás Dr. Bécsi Tamás

Járműfedélzeti rendszerek II. 1. előadás Dr. Bécsi Tamás Járműfedélzeti rendszerek II. 1. előadás Dr. Bécsi Tamás A tárgy órái Előadás hetente (St101) csüt. 8:15 Bécsi Tamás C elmélet Ajánlott irodalom Dennis Ritchie: A C programozási nyelv Gyakorlat hetente

Részletesebben

S z á m í t ó g é p e s a l a p i s m e r e t e k

S z á m í t ó g é p e s a l a p i s m e r e t e k S z á m í t ó g é p e s a l a p i s m e r e t e k 7. előadás Ami eddig volt Számítógépek architektúrája Alapvető alkotóelemek Hardver elemek Szoftver Gépi kódtól az operációs rendszerig Unix alapok Ami

Részletesebben

Szabadkai Műszaki Szakfőiskola. Web programozás. dr Zlatko Čović chole@vts.su.ac.rs

Szabadkai Műszaki Szakfőiskola. Web programozás. dr Zlatko Čović chole@vts.su.ac.rs Szabadkai Műszaki Szakfőiskola Web programozás dr Zlatko Čović chole@vts.su.ac.rs 1 CLIENT-SERVER 2 Internet technológiák Kliens oldali: -(x)html -CSS -JavaScript -XML JavaScript XML PHP Szerver oldali:

Részletesebben

Java programozási nyelv

Java programozási nyelv Java programozási nyelv 2. rész Vezérlő szerkezetek Nyugat-Magyarországi Egyetem Faipari Mérnöki Kar Informatikai Intézet Soós Sándor 2005. szeptember A Java programozási nyelv Soós Sándor 1/23 Tartalomjegyzék

Részletesebben

A WEB programozása JavaScript 1 dr.gál Tibor. 2010. őszi félév

A WEB programozása JavaScript 1 dr.gál Tibor. 2010. őszi félév JAVASCRIPT Történet JavaScript nyelv nem azonos a Java nyelvvel 1995: Netscape vezette be az addigi statikus HTML oldalak dinamikussá tételére 1996: Microsoft saját változata a JScript Microsoft mint konkurenciát

Részletesebben

Szoftvertervezés és -fejlesztés I.

Szoftvertervezés és -fejlesztés I. Szoftvertervezés és -fejlesztés I. Operátorok Vezérlési szerkezetek Gyakorlás 1 Hallgatói Tájékoztató A jelen bemutatóban található adatok, tudnivalók és információk a számonkérendő anyag vázlatát képezik.

Részletesebben

Programozás I. 3. gyakorlat. Szegedi Tudományegyetem Természettudományi és Informatikai Kar

Programozás I. 3. gyakorlat. Szegedi Tudományegyetem Természettudományi és Informatikai Kar Programozás I. 3. gyakorlat Szegedi Tudományegyetem Természettudományi és Informatikai Kar Antal Gábor 1 Primitív típusok Típus neve Érték Alap érték Foglalt tár Intervallum byte Előjeles egész 0 8 bit

Részletesebben

NONPROFIT ÉRDEKVÉDELMI SZERVEZETEK FEJLESZTÉSE (PL.3346) Java-script nyelv. programozás alapjai. Haramia László

NONPROFIT ÉRDEKVÉDELMI SZERVEZETEK FEJLESZTÉSE (PL.3346) Java-script nyelv. programozás alapjai. Haramia László NONPROFIT ÉRDEKVÉDELMI SZERVEZETEK FEJLESZTÉSE (PL.3346) Java-script nyelv programozás alapjai Haramia László JavaScript szerepe Netscape fejlesztette ki LiveScript Interaktív weboldalak dinamikus kezelhetősége

Részletesebben

A C# programozási nyelv alapjai

A C# programozási nyelv alapjai A C# programozási nyelv alapjai Tisztán objektum-orientált Kis- és nagybetűket megkülönbözteti Ötvözi a C++, Delphi, Java programozási nyelvek pozitívumait.net futtatókörnyezet Visual Studio fejlesztőkörnyezet

Részletesebben

Informatika terméktervezőknek

Informatika terméktervezőknek Informatika terméktervezőknek C# alapok Névterület (namespace) using Osztály (class) és Obejtumok Metódus (function, procedure, method) main() static void string[] arg Szintaxis // /* */ \n \t Névadások

Részletesebben

Természetesen készíts egy csempe nevű könyvtárat és ide mentsd az index.html állományt.

Természetesen készíts egy csempe nevű könyvtárat és ide mentsd az index.html állományt. Csempe kalkula tor A küldetésünk az, hogy segítsünk kiszámítani egy fürdőszoba csempeszükségletét (felületét). Sőt, ha a kalkulátort használó ügyfél elégedett egyből elküldheti az e-mail címét, hogy a

Részletesebben

Java II. I A Java programozási nyelv alapelemei

Java II. I A Java programozási nyelv alapelemei Java2 / 1 Java II. I A Java programozási nyelv alapelemei Miskolci Egyetem Általános Informatikai Tanszék Utolsó módosítás: 2009. 02. 09. Java II.: Alapelemek JAVA2 / 1 A Java formalizmusa A C, illetve

Részletesebben

AWK programozás Bevezetés

AWK programozás Bevezetés 09 AWK programozás Bevezetés AWK adatvezérelt szkriptnyelv text processing, adat kiterjesztés, tagolt adatok automatizált soronkénti feldolgozása a forrásállományt soronként beolvassa és feldolgozhatóvá

Részletesebben

AWK programozás, minták, vezérlési szerkezetek

AWK programozás, minták, vezérlési szerkezetek 10 AWK programozás, minták, vezérlési szerkezetek AWK futtatási módok AWK parancs, közvetlen programkódmegadás: awk 'PROGRAMKÓD' FILE példa: ls -l awk '{print $1, $5}' a programkód helyére minden indentálás

Részletesebben

BASH script programozás II. Vezérlési szerkezetek

BASH script programozás II. Vezérlési szerkezetek 06 BASH script programozás II. Vezérlési szerkezetek Emlékeztető Jelölésbeli különbség van parancs végrehajtása és a parancs kimenetére való hivatkozás között PARANCS $(PARANCS) Jelölésbeli különbség van

Részletesebben

PHP. Telepítése: Indítás/újraindítás/leállítás: Beállítások: A PHP nyelv

PHP. Telepítése: Indítás/újraindítás/leállítás: Beállítások: A PHP nyelv PHP A PHP rövidítés jelentése hivatalosan: PHP Hypertext Preprocessor. Ez egy kiszolgáló-oldali parancsnyelv, amit jellemzően HTML oldalakon használnak. A különbség a két nyelv között az, hogy a kiszolgáló

Részletesebben

7. Előadás. Makrók alkalmazása. Salamon Júlia. Előadás I. éves mérnök hallgatók számára

7. Előadás. Makrók alkalmazása. Salamon Júlia. Előadás I. éves mérnök hallgatók számára 7. Előadás Makrók alkalmazása. Salamon Júlia Előadás I. éves mérnök hallgatók számára Feltételes ciklusok Ha a ciklusváltozó intervallumát, előre nem tudjuk mert például a program futása során megszerzett

Részletesebben

Web programozás. 3. előadás

Web programozás. 3. előadás Web programozás 3. előadás Űrlapok form label for input type select, option value szöveges mező: text textarea jelszó: password rádiógomb: radio jelölőnégyzet: checkbox küldés gomb: submit Web programozás

Részletesebben

Occam 1. Készítette: Szabó Éva

Occam 1. Készítette: Szabó Éva Occam 1. Készítette: Szabó Éva Párhuzamos programozás Egyes folyamatok (processzek) párhuzamosan futnak. Több processzor -> tényleges párhuzamosság Egy processzor -> Időosztásos szimuláció Folyamatok közötti

Részletesebben

SZERVER OLDALI JAVASCRIPT. 3. hét Javascript nyelvi elemek

SZERVER OLDALI JAVASCRIPT. 3. hét Javascript nyelvi elemek SZERVER OLDALI JAVASCRIPT 3. hét Javascript nyelvi elemek NYELVI ALAPOK: Ez sajnos igen száraz anyag, Viszont a megértékhez és a nyelv elsajátításához kell. Próbáljuk meg random gifekkel feldobni. MIRŐL

Részletesebben

1. Jelölje meg az összes igaz állítást a következők közül!

1. Jelölje meg az összes igaz állítást a következők közül! 1. Jelölje meg az összes igaz állítást a következők közül! a) A while ciklusban a feltétel teljesülése esetén végrehajtódik a ciklusmag. b) A do while ciklusban a ciklusmag után egy kilépési feltétel van.

Részletesebben

1. Egyszerű (primitív) típusok. 2. Referencia típusok

1. Egyszerű (primitív) típusok. 2. Referencia típusok II. A Java nyelv eszközei 1. Milyen eszközöket nyújt a Java a programozóknak Korábban már említettük, hogy a Java a C nyelvből alakult ki, ezért a C, C++ nyelvben járatos programozóknak nem fog nehézséget

Részletesebben

Programozás. (GKxB_INTM021) Dr. Hatwágner F. Miklós március 3. Széchenyi István Egyetem, Gy r

Programozás. (GKxB_INTM021) Dr. Hatwágner F. Miklós március 3. Széchenyi István Egyetem, Gy r Programozás (GKxB_INTM021) Széchenyi István Egyetem, Gy r 2018. március 3. Függvények Mi az a függvény (function)? Programkód egy konkrét, azonosítható, paraméterezhet, újrahasznosítható blokkja Miért

Részletesebben

Mechatronika és mikroszámítógépek 2017/2018 I. félév. Bevezetés a C nyelvbe

Mechatronika és mikroszámítógépek 2017/2018 I. félév. Bevezetés a C nyelvbe Mechatronika és mikroszámítógépek 2017/2018 I. félév Bevezetés a C nyelvbe A C programozási nyelv A C egy általános célú programozási nyelv, melyet Dennis Ritchie fejlesztett ki Ken Thompson segítségével

Részletesebben

Programozási nyelvek JAVA EA+GY 1. gyakolat

Programozási nyelvek JAVA EA+GY 1. gyakolat Programozási nyelvek JAVA EA+GY 1. gyakolat EÖTVÖS LORÁND TUDOMÁNYEGYTEM INFORMATIKAI KAR PROGRAMOZÁSI NYELVEK ÉS FORDÍTÓPROGRAMOK TANSZÉK 2018/2019. tavaszi félév Tartalom 1 A Java alapjai 2 Java program

Részletesebben

Mintavételes szabályozás mikrovezérlő segítségével

Mintavételes szabályozás mikrovezérlő segítségével Automatizálási Tanszék Mintavételes szabályozás mikrovezérlő segítségével Budai Tamás budai.tamas@sze.hu http://maxwell.sze.hu/~budait Tartalom Mikrovezérlőkről röviden Programozási alapismeretek ismétlés

Részletesebben

Programozás BMEKOKAA146. Dr. Bécsi Tamás 2. előadás

Programozás BMEKOKAA146. Dr. Bécsi Tamás 2. előadás Programozás BMEKOKAA146 Dr. Bécsi Tamás 2. előadás Szintaktikai alapok Alapvető típusok, ismétlés C# típus.net típus Méret (byte) Leírás byte System.Byte 1Előjel nélküli 8 bites egész szám (0..255) char

Részletesebben

PHP. Adatbázisok gyakorlat

PHP. Adatbázisok gyakorlat PHP Adatbázisok gyakorlat Mi a PHP? A PHP (PHP: Hypertext Preprocessor) egy nyílt forráskódú, számítógépes szkriptnyelv, legfőbb felhasználási területe a dinamikus weboldalak készítése. A PHP-kódunk általában

Részletesebben

WEBFEJLESZTÉS 2. ADATBÁZIS-KEZELÉS, OSZTÁLYOK

WEBFEJLESZTÉS 2. ADATBÁZIS-KEZELÉS, OSZTÁLYOK WEBFEJLESZTÉS 2. ADATBÁZIS-KEZELÉS, OSZTÁLYOK Horváth Győző Egyetemi adjunktus 1117 Budapest, Pázmány Péter sétány 1/C, 2.420 Tel: (1) 372-2500/1816 2 Ismétlés Ismétlés 3 Fájl/Adatbázis 3 4 Szerver 2 CGI

Részletesebben

Készítette: Gál Tamás. A tananyag programozott változata itt érhető el: Webfejlesztés

Készítette: Gál Tamás. A tananyag programozott változata itt érhető el: Webfejlesztés HLTML 5 formok gyorstalpaló Készítette: Gál Tamás A tananyag programozott változata itt érhető el: Webfejlesztés (http://webfejlesztes.gtportal.eu/) Creative Commons Nevezd meg!-ne add el!-így add tovább!

Részletesebben

Web-fejlesztés NGM_IN002_1

Web-fejlesztés NGM_IN002_1 Web-fejlesztés NGM_IN002_1 Rich Internet Applications RIA Vékony-kliens generált (statikus) HTML megjelenítése szerver oldali feldolgozással szinkron oldal megjelenítéssel RIA desktop alkalmazások funkcionalitása

Részletesebben

file./script.sh > Bourne-Again shell script text executable << tartalmat néz >>

file./script.sh > Bourne-Again shell script text executable << tartalmat néz >> I. Alapok Interaktív shell-ben vagy shell-scriptben megadott karaktersorozat feldolgozásakor az első lépés a szavakra tördelés. A szavakra tördelés a következő metakarakterek mentén zajlik: & ; ( ) < >

Részletesebben

Internet technológiák

Internet technológiák Szabadkai Műszaki Szakfőiskola Internet technológiák dr Zlatko Čović chole@vts.su.ac.rs 1 XHTML űrlapok 2 XHTML űrlapok Minden űrlap jelölőelem a: form{action, enctype, method} Űrlaptartalom /form jelölőelem

Részletesebben

A szerzõrõl... xi Bevezetés... xiii

A szerzõrõl... xi Bevezetés... xiii TARTALOMJEGYZÉK A szerzõrõl...................................................... xi Bevezetés...................................................... xiii I. rész A Visual Basic 2005 környezet 1. óra Irány

Részletesebben

Programozás s 2 javascript

Programozás s 2 javascript Programozás s 2 javascript Az Internet programozása II. utolsó változtatás s 2008.04.27 27. Javascript Egy böngb ngészőhöz z készk szült script nyelv. Közvetlenül l a HTML kódba k kell beírni. Interaktivitást

Részletesebben

HTML. Ismerkedés a JavaScripttel. A JavaScript lehet ségei. A JavaScript kód helye. Önálló JavaScript fájlok

HTML. Ismerkedés a JavaScripttel. A JavaScript lehet ségei. A JavaScript kód helye. Önálló JavaScript fájlok HTML Ismerkedés a JavaScripttel webprogramozó A weblapokat HTML nyelven készíthetjük el. A HTML egyszer leírónyelv, nem alkalmas válaszolni a felhasználóknak, nem tud döntéseket hozni, nem tud végrehajtani

Részletesebben

PHP gyorstalpaló, avagy a Hello World-től az űrlapellenőrzésig

PHP gyorstalpaló, avagy a Hello World-től az űrlapellenőrzésig PHP gyorstalpaló, avagy a Hello World-től az űrlapellenőrzésig

Részletesebben

Operációs rendszerek. 11. gyakorlat. AWK - szintaxis, vezérlési szerkezetek UNIVERSITAS SCIENTIARUM SZEGEDIENSIS UNIVERSITY OF SZEGED

Operációs rendszerek. 11. gyakorlat. AWK - szintaxis, vezérlési szerkezetek UNIVERSITAS SCIENTIARUM SZEGEDIENSIS UNIVERSITY OF SZEGED UNIVERSITAS SCIENTIARUM SZEGEDIENSIS UNIVERSITY OF SZEGED AWK - szintaxis, vezérlési szerkezetek Operációs rendszerek 11. gyakorlat Szegedi Tudományegyetem Természettudományi és Informatikai Kar Csuvik

Részletesebben

Neumann János Számítógép-tudományi Társaság Programozás, robotprogramozás szakkör Három félév 3 * 8 foglalkozás

Neumann János Számítógép-tudományi Társaság Programozás, robotprogramozás szakkör Három félév 3 * 8 foglalkozás Neumann János Számítógép-tudományi Társaság Programozás, robotprogramozás szakkör Három félév 3 * 8 foglalkozás Első félév A modul időtartama: A modul célja: A modul tartalma: 8 foglalkozás, alkalmanként

Részletesebben

OBJEKTUM ORIENTÁLT PROGRAMOZÁS JAVA NYELVEN. vizsgatételek

OBJEKTUM ORIENTÁLT PROGRAMOZÁS JAVA NYELVEN. vizsgatételek OBJEKTUM ORIENTÁLT PROGRAMOZÁS JAVA NYELVEN vizsgatételek 1. Az objektumorientált programozás szemlélete, az objektum fogalma 2. Az objektumorientált programozás alapelvei 3. A Java nyelv története, alapvető

Részletesebben

Készítette: Nagy Tibor István

Készítette: Nagy Tibor István Készítette: Nagy Tibor István A változó Egy memóriában elhelyezkedő rekesz Egy értéket tárol Van azonosítója (vagyis neve) Van típusa (milyen értéket tárolhat) Az értéke értékadással módosítható Az értéke

Részletesebben

Tömbök kezelése. Példa: Vonalkód ellenőrzőjegyének kiszámítása

Tömbök kezelése. Példa: Vonalkód ellenőrzőjegyének kiszámítása Tömbök kezelése Példa: Vonalkód ellenőrzőjegyének kiszámítása A számokkal jellemzett adatok, pl. személyi szám, adószám, taj-szám, vonalkód, bankszámlaszám esetében az elírásból származó hibát ún. ellenőrző

Részletesebben

HTML és CSS. Horváth Árpád május 6. Óbudai Egyetem Alba Regia M szaki Kar (AMK) Székesfehérvár

HTML és CSS. Horváth Árpád május 6. Óbudai Egyetem Alba Regia M szaki Kar (AMK) Székesfehérvár Óbudai Egyetem Alba Regia M szaki Kar (AMK) Székesfehérvár 2015. május 6. Vázlat 1 2 A világháló Története statikus és dinamikus oldal URL DNS-feloldás IP-cím ügyfél (kliens, böngész ) és szerver (kiszolgáló)

Részletesebben

C# nyelv alapjai. Krizsán Zoltán 1. Objektumorientált programozás C# alapokon tananyag. Általános Informatikai Tanszék Miskolci Egyetem

C# nyelv alapjai. Krizsán Zoltán 1. Objektumorientált programozás C# alapokon tananyag. Általános Informatikai Tanszék Miskolci Egyetem C# nyelv alapjai Krizsán Zoltán 1 Általános Informatikai Tanszék Miskolci Egyetem Objektumorientált programozás C# alapokon tananyag Tartalom Bevezetés Lokális változó Utasítások Szójáték Why do all real

Részletesebben

Számítástechnika I. BMEKOKAA152 BMEKOKAA119 Infokommunikáció I. BMEKOKAA606. Dr. Bécsi Tamás 2. előadás

Számítástechnika I. BMEKOKAA152 BMEKOKAA119 Infokommunikáció I. BMEKOKAA606. Dr. Bécsi Tamás 2. előadás Számítástechnika I. BMEKOKAA152 BMEKOKAA119 Infokommunikáció I. BMEKOKAA606 Dr. Bécsi Tamás 2. előadás Console I/O bővebben Lásd mintaprogram 2015.09.21. Számítástechnika I. 2. Előadás 2 Számábrázolásról

Részletesebben

Programozás alapjai C nyelv 4. gyakorlat. Mit tudunk már? Feltételes operátor (?:) Típus fogalma char, int, float, double

Programozás alapjai C nyelv 4. gyakorlat. Mit tudunk már? Feltételes operátor (?:) Típus fogalma char, int, float, double Programozás alapjai C nyelv 4. gyakorlat Szeberényi Imre BME IIT Programozás alapjai I. (C nyelv, gyakorlat) BME-IIT Sz.I. 2005.10.10.. -1- Mit tudunk már? Típus fogalma char, int, float,

Részletesebben

A webprogramozás alapjai. Óbudai Egyetem Neumann János Informatikai Kar 2018/19/1 szemeszter

A webprogramozás alapjai. Óbudai Egyetem Neumann János Informatikai Kar 2018/19/1 szemeszter 1 A webprogramozás alapjai Óbudai Egyetem Neumann János Informatikai Kar 2018/19/1 szemeszter IV. előadás Nyelv típusok HTML nyelv fontosabb elemei I. Mappaszerkezet és file struktúra Szerkesztők bemutatása,

Részletesebben

Internet programozása. 1. előadás

Internet programozása. 1. előadás Internet programozása 1. előadás Áttekintés 1. Mi a PHP? 2. A PHP fejlődése 3. A PHP 4 újdonságai 4. Miért pont PHP? 5. A programfejlesztés eszközei 1. Mi a PHP? Egy makrókészlet volt, amely személyes

Részletesebben

Web Technológiák. Répási Tibor egyetemi tanársegéd. Miskolc Egyetem,Gépészmérnöki kar, Infomatikai és Villamosmérnöki Tanszékcsoport (IVM)

Web Technológiák. Répási Tibor egyetemi tanársegéd. Miskolc Egyetem,Gépészmérnöki kar, Infomatikai és Villamosmérnöki Tanszékcsoport (IVM) Web Technológiák Répási Tibor egyetemi tanársegéd Miskolc Egyetem,Gépészmérnöki kar, Infomatikai és Villamosmérnöki Tanszékcsoport (IVM) Általános Informatikai Tanszék Iroda: Inf.Int. 108. Tel: 2108 Mai

Részletesebben

Pénzügyi algoritmusok

Pénzügyi algoritmusok Pénzügyi algoritmusok A C++ programozás alapjai Tömbök (3. rész) Konstansok Kivételkezelés Tömbök 3. Többdimenziós tömbök Többdimenziós tömbök int a; Többdimenziós tömbök int a[5]; Többdimenziós tömbök

Részletesebben

Programozás alapjai. (GKxB_INTM023) Dr. Hatwágner F. Miklós augusztus 29. Széchenyi István Egyetem, Gy r

Programozás alapjai. (GKxB_INTM023) Dr. Hatwágner F. Miklós augusztus 29. Széchenyi István Egyetem, Gy r Programozás alapjai (GKxB_INTM023) Széchenyi István Egyetem, Gy r 2019. augusztus 29. Feladat: írjuk ki az els 10 természetes szám négyzetét! #i n c l u d e i n t main ( v o i d ) { p r

Részletesebben

5. KOMBINÁCIÓS HÁLÓZATOK LEÍRÁSÁNAK SZABÁLYAI

5. KOMBINÁCIÓS HÁLÓZATOK LEÍRÁSÁNAK SZABÁLYAI 5. KOMBINÁCIÓS HÁLÓZATOK LEÍRÁSÁNAK SZABÁLYAI 1 Kombinációs hálózatok leírását végezhetjük mind adatfolyam-, mind viselkedési szinten. Az adatfolyam szintű leírásokhoz az assign kulcsszót használjuk, a

Részletesebben

Vezérlési szerkezetek

Vezérlési szerkezetek Vezérlési szerkezetek Szelekciós ok: if, else, switch If Segítségével valamely ok végrehajtását valamely feltétel teljesülése esetén végezzük el. Az if segítségével valamely tevékenység () végrehajtását

Részletesebben

Mit tudunk már? Programozás alapjai C nyelv 4. gyakorlat. Legnagyobb elem keresése. Feltételes operátor (?:) Legnagyobb elem keresése (3)

Mit tudunk már? Programozás alapjai C nyelv 4. gyakorlat. Legnagyobb elem keresése. Feltételes operátor (?:) Legnagyobb elem keresése (3) Programozás alapjai C nyelv 4. gyakorlat Szeberényi Imre BME IIT Mit tudunk már? Típus fogalma char, int, float, double változók deklarációja operátorok (aritmetikai, relációs, logikai,

Részletesebben

HTML kódok. A www jelentése World Wide Web.

HTML kódok. A www jelentése World Wide Web. HTML kódok A www jelentése World Wide Web. A HTML (angolul: HyperText Markup Language=hiperszöveges jelölőnyelv) egy leíró nyelv, melyet weboldalak készítéséhez fejlesztettek ki. A honlap felépítése (csak

Részletesebben

HTML. Dr. Nyéki Lajos 2016

HTML. Dr. Nyéki Lajos 2016 HTML Dr. Nyéki Lajos 2016 HTML és SGML HTML (Hypertext Markup Language) SGML (Standard Generalized Markup Language) ISO 8879:1986 A HTML nyelven készült dokumentumok kiterjesztése - az Internet szerveren:.html;

Részletesebben

A függvény kód szekvenciáját kapcsos zárójelek közt definiáljuk, a { } -ek közti részt a Bash héj kód blokknak (code block) nevezi.

A függvény kód szekvenciáját kapcsos zárójelek közt definiáljuk, a { } -ek közti részt a Bash héj kód blokknak (code block) nevezi. Függvények 1.Függvények...1 1.1.A függvény deníció szintaxisa... 1..Függvények érték visszatérítése...3 1.3.Környezettel kapcsolatos kérdések...4 1.4.Lokális változók használata...4 1.5.Rekurzív hívások...5.kód

Részletesebben

Változók. Mennyiség, érték (v. objektum) szimbolikus jelölése, jelentése Tulajdonságai (attribútumai):

Változók. Mennyiség, érték (v. objektum) szimbolikus jelölése, jelentése Tulajdonságai (attribútumai): Javascript Változók Mennyiség, érték (v. objektum) szimbolikus jelölése, jelentése Tulajdonságai (attribútumai): Név Érték Típus Memóriacím A változó értéke (esetleg más attribútuma is) a program futása

Részletesebben

Webes űrlapok és az XForms ajánlás

Webes űrlapok és az XForms ajánlás Debreceni Egyetem Informatikai Kar Webes űrlapok és az XForms ajánlás Témavezető: Dr. Adamkó Attila egyetemi adjunktus Készítette: Hetei György programtervező Informatikus Debrecen 2010 Bevezetés 3 A HTML

Részletesebben

Programozás. (GKxB_INTM021) Dr. Hatwágner F. Miklós február 18. Széchenyi István Egyetem, Gy r

Programozás. (GKxB_INTM021) Dr. Hatwágner F. Miklós február 18. Széchenyi István Egyetem, Gy r Programozás (GKxB_INTM021) Széchenyi István Egyetem, Gy r 2018. február 18. Minimum és maximumkeresés u s i n g n a m e s p a c e s t d ; i n t main ( ) { c o u t

Részletesebben

Alapok. tisztán funkcionális nyelv, minden függvény (a konstansok is) nincsenek hagyományos változók, az első értékadás után nem módosíthatók

Alapok. tisztán funkcionális nyelv, minden függvény (a konstansok is) nincsenek hagyományos változók, az első értékadás után nem módosíthatók Haskell 1. Alapok tisztán funkcionális nyelv, minden függvény (a konstansok is) nincsenek hagyományos változók, az első értékadás után nem módosíthatók elég jól elkerülhetők így a mellékhatások könnyebben

Részletesebben

Hardver leíró nyelvek (HDL)

Hardver leíró nyelvek (HDL) Hardver leíró nyelvek (HDL) Benesóczky Zoltán 2004 A jegyzetet a szerzıi jog védi. Azt a BME hallgatói használhatják, nyomtathatják tanulás céljából. Minden egyéb felhasználáshoz a szerzı belegyezése szükséges.

Részletesebben

Memóriagazdálkodás. Kódgenerálás. Kódoptimalizálás

Memóriagazdálkodás. Kódgenerálás. Kódoptimalizálás Kódgenerálás Memóriagazdálkodás Kódgenerálás program prológus és epilógus értékadások fordítása kifejezések fordítása vezérlési szerkezetek fordítása Kódoptimalizálás L ATG E > TE' E' > + @StPushAX T @StPopBX

Részletesebben

Karakterkészlet. A kis- és nagybetűk nem különböznek, a sztringliterálok belsejét leszámítva!

Karakterkészlet. A kis- és nagybetűk nem különböznek, a sztringliterálok belsejét leszámítva! A PL/SQL alapelemei Karakterkészlet Az angol ABC kis- és nagybetűi: a-z, A-Z Számjegyek: 0-9 Egyéb karakterek: ( ) + - * / < > =! ~ ^ ; :. ' @ %, " # $ & _ { }? [ ] Szóköz, tabulátor, kocsivissza A kis-

Részletesebben

WEBFEJLESZTÉS 2. ŰRLAPOK, KÉPEK, TÁBLÁZATOK, BÖNGÉSZŐ

WEBFEJLESZTÉS 2. ŰRLAPOK, KÉPEK, TÁBLÁZATOK, BÖNGÉSZŐ WEBFEJLESZTÉS 2. ŰRLAPOK, KÉPEK, TÁBLÁZATOK, BÖNGÉSZŐ Horváth Győző Egyetemi adjunktus 1117 Budapest, Pázmány Péter sétány 1/C, 2.420 Tel: (1) 372-2500/1816 2 Ismétlés JavaScript programozás 3 JavaScript

Részletesebben

Programozás II. 2. Dr. Iványi Péter

Programozás II. 2. Dr. Iványi Péter Programozás II. 2. Dr. Iványi Péter 1 C++ Bjarne Stroustrup, Bell Laboratórium Első implementáció, 1983 Kezdetben csak precompiler volt C++ konstrukciót C-re fordította A kiterjesztés alapján ismerte fel:.cpp.cc.c

Részletesebben

Forráskód formázási szabályok

Forráskód formázási szabályok Forráskód formázási szabályok Írta: Halmai Csongor, Webcenter Bt. A php és html kódrészletek Ugyanazon fájlon belül nem szerepelhet php kód és html tartalom. E kettő különválasztására smarty-t vagy más

Részletesebben

C programozás. 1 óra Bevezetés

C programozás. 1 óra Bevezetés C programozás 1 óra Bevezetés A C nyelv eredete, fő tulajdonságai 1. Bevezető C nyelv alapelemei többsége a BCPL (Basic Combined Programming Language {1963}) Martin Richards B nyelv Ken Thompson {1970}

Részletesebben

A C programozási nyelv I. Bevezetés

A C programozási nyelv I. Bevezetés A C programozási nyelv I. Bevezetés Miskolci Egyetem Általános Informatikai Tanszék A C programozási nyelv I. (bevezetés) CBEV1 / 1 A C nyelv története Dennis M. Ritchie AT&T Lab., 1972 rendszerprogramozás,

Részletesebben

PHP-MySQL. Adatbázisok gyakorlat

PHP-MySQL. Adatbázisok gyakorlat PHP-MySQL Adatbázisok gyakorlat Weboldalak és adatbázisok Az eddigiek során megismertük, hogyan lehet a PHP segítségével dinamikus weblapokat készíteni. A dinamikus weboldalak az esetek többségében valamilyen

Részletesebben

DINAMIKUS MULTIMÉDIÁS TARTALOM...

DINAMIKUS MULTIMÉDIÁS TARTALOM... PHP XML Tartalomjegyzék PHP DINAMIKUS MULTIMÉDIÁS TARTALOM...1 TARTALOMJEGYZÉK...1 EDDIG VOLT...1 MAI ANYAG...1 XML feldolgozása általában...2 A PHP és XML története...2 SAX (Simple API for XML)...2 1.

Részletesebben

Tartalom. A JavaScript haladó lehet ségei. Megjelenés. Viselkedés. Progresszív fejlesztés. A progresszív fejlesztés alapelvei

Tartalom. A JavaScript haladó lehet ségei. Megjelenés. Viselkedés. Progresszív fejlesztés. A progresszív fejlesztés alapelvei Tartalom A JavaScript haladó lehet ségei webprogramozó A szöveg, amit a látogató az oldalainkon olvashat Szövegként írjuk meg HTML elemekkel osztjuk egységekre Megjelenés A szöveg kinézete és elrendezése

Részletesebben

Programozás alapjai. (GKxB_INTM023) Dr. Hatwágner F. Miklós október 11. Széchenyi István Egyetem, Gy r

Programozás alapjai. (GKxB_INTM023) Dr. Hatwágner F. Miklós október 11. Széchenyi István Egyetem, Gy r Programozás alapjai (GKxB_INTM023) Széchenyi István Egyetem, Gy r 2018. október 11. Függvények Mi az a függvény (function)? Programkód egy konkrét, azonosítható, paraméterezhet, újrahasznosítható blokkja

Részletesebben

Javacript alapismeretek

Javacript alapismeretek Javacript alapismeretek Mi az a JavaScript, mire alkalmazzuk? A JavaScript egy olyan programozási nyelv, melyet eleinte direkt a HTML hiányosságainak pótlására fejlesztettek ki. Segítségével létrehozhatunk

Részletesebben

Komputeralgebra rendszerek

Komputeralgebra rendszerek Komputeralgebra rendszerek III. Változók Czirbusz Sándor czirbusz@gmail.com Komputeralgebra Tanszék ELTE Informatika Kar 2009-2010 ősz Index I 1 Szimbolikus konstansok kezelés A konstansok Nevek levédése

Részletesebben

Komputeralgebra rendszerek

Komputeralgebra rendszerek Komputeralgebra rendszerek III. Változók Czirbusz Sándor czirbusz@gmail.com Komputeralgebra Tanszék ELTE Informatika Kar 2009-2010 ősz Index I 1 Szimbolikus konstansok kezelés A konstansok Nevek levédése

Részletesebben

HTML, Javascript és az objektumok

HTML, Javascript és az objektumok Javascript referencia Bevezetés A Javascript egy HTML fájlokba tervezett objektum-orientált nyelv. Alapjai a C és C++ nyelvek, így ezekre sokban hasonlít. Ez a dokumentum egy gyors összefoglaló a nyelvrõl,

Részletesebben

1. Alapok. #!/bin/bash

1. Alapok. #!/bin/bash 1. oldal 1.1. A programfájlok szerkezete 1. Alapok A bash programok tulajnképpen egyszerű szöveges fájlok, amelyeket bármely szövegszerkesztő programmal megírhatunk. Alapvetően ugyanazokat a at használhatjuk

Részletesebben

Apple Swift kurzus 3. gyakorlat

Apple Swift kurzus 3. gyakorlat Készítette: Jánki Zoltán Richárd Dátum: 2016.09.20. Apple Swift kurzus 3. gyakorlat Kollekciók: Tömb: - let array = [] - üres konstans tömb - var array = [] - üres változó tömb - var array = [String]()

Részletesebben

Internet programozása. 3. előadás

Internet programozása. 3. előadás Internet programozása 3. előadás Áttekintés Hogyan használjuk az if szerkezetet arra, hogy bizonyos sorok csak adott feltételek teljesülése mellett hajtódjanak végre? Hogyan adhatunk meg csak bizonyos

Részletesebben

Komputeralgebra Rendszerek

Komputeralgebra Rendszerek Komputeralgebra Rendszerek Programozás Czirbusz Sándor ELTE IK, Komputeralgebra Tanszék 2014. február 23. TARTALOMJEGYZÉK 1 of 28 TARTALOMJEGYZÉK I 1 TARTALOMJEGYZÉK 2 Értékadás MAPLE -ben SAGE -ben 3

Részletesebben

Algoritmizálás és adatmodellezés tanítása 1. előadás

Algoritmizálás és adatmodellezés tanítása 1. előadás Algoritmizálás és adatmodellezés tanítása 1. előadás Algoritmus-leíró eszközök Folyamatábra Irányított gráf, amely csomópontokból és őket összekötő élekből áll, egyetlen induló és befejező éle van, az

Részletesebben

Ismerkedés a Python programnyelvvel. és annak micropython változatával

Ismerkedés a Python programnyelvvel. és annak micropython változatával Ismerkedés a Python programnyelvvel és annak micropython változatával A Python programozási nyelv története Az alapötlet 1980-ban született, 1989 decemberében kezdte el fejleszteni Guido van Rossum a CWI-n

Részletesebben

AJAX Framework építés. Nagy Attila Gábor Wildom Kft. nagya@wildom.com

AJAX Framework építés. Nagy Attila Gábor Wildom Kft. nagya@wildom.com AJAX Framework építés Wildom Kft. nagya@wildom.com Mi az AJAX? Asynchronous JavaScript and XML Ennél azért kicsit több: Koncepció váltás a felhasználói interface tervezésben Standard kompatibilis HTML!

Részletesebben

Akadálymentes weboldalkészítés dióhéjban

Akadálymentes weboldalkészítés dióhéjban Akadálymentes weboldalkészítés dióhéjban Készítette: Mezei Ádám Info-kommunikációs Akadálymentességi Műhelykonferencia 2008. november 20 Mi az oka, hogy NEM akadálymentes honlapokat készítünk? 1) Nem gondolunk

Részletesebben

Webes alkalmazások fejlesztése 4. előadás. Megjelenítés és tartalomkezelés (ASP.NET)

Webes alkalmazások fejlesztése 4. előadás. Megjelenítés és tartalomkezelés (ASP.NET) Eötvös Loránd Tudományegyetem Informatikai Kar Webes alkalmazások fejlesztése 4. előadás (ASP.NET) 2016 Giachetta Roberto groberto@inf.elte.hu http://people.inf.elte.hu/groberto Nézetek kezelése Sok esetben

Részletesebben