Professional Documents
Culture Documents
Mkdsi elv u o e
AJAX keretrendszerek
AJAX
Bevezets e
Mkdsi elv u o e
AJAX keretrendszerek
Attekints e
Bevezets e
Mkdsi elv u o e
AJAX keretrendszerek
Attekints e
Bevezets e
Mkdsi elv u o e
AJAX keretrendszerek
Attekints e
Bevezets e
Mkdsi elv u o e
AJAX keretrendszerek
AJAX
AJAX: Asynchronous JavaScript and XML az albbi technolgikon alapul: a o a (X)HTML, CSS XML JavaScript 2005-ben vlt npszerv a Google rvn (Google Suggest) a e u e e e
Bevezets e
Mkdsi elv u o e
AJAX keretrendszerek
Motivci: a o igny az interakt web-alkalmazsra e v a a klasszikus web-alkalmazs sok szempontbl nem felel meg ennek a o az ignynek a teljes oldal friss ese minden krs/vlasz esetn e t ee a e a kliensek elnyben rszes o e tenek egy bngszben fut o e o o web-alkalmazst egy specializlt desktop-alkalmazssal szemben a a a
nem kell kliens oldali alkalmazst telep a teni knnyebb karbantarts o a
Bevezets e
Mkdsi elv u o e
AJAX keretrendszerek
Bevezets e
Mkdsi elv u o e
AJAX keretrendszerek
Bevezets e
Mkdsi elv u o e
AJAX keretrendszerek
nem standard, de a legtbb bngsz tmogatja (bngszfgg o o e o a o e ou o eltrsek) ee hasznlhat JavaScript, Jscript, VBScript-bl a o o seg egvel aszinkron kapcsolat hozhat ltre a kliens s szerver ts e o e e kztt o o a krs feldolgozst kveten a szerver vlasza lehet: ee aa o o a
egyszer szveg u o XML objektum (JSON jellssel megadva) oe
Bevezets e
Mkdsi elv u o e
AJAX keretrendszerek
XMLHttpRequest - folyt. 1
Az XMLHttpRequest objektum metdusai: o open( open( open( open( method, method, method, method, URL ) URL, async ) URL, async, userName ) URL, async, userName, password )
Bevezets e
Mkdsi elv u o e
AJAX keretrendszerek
XMLHttpRequest - folyt. 2
Az XMLHttpRequest objektum mezi: o readyState:
0 1 2 3 4 a krs mg nincs inicializlva ee e a a krs inicializlva van ee a a krs el lett kldve ee u a krs feldolgozs alatt ll ee a a megrkezett a vlasz e a
onreadystatechange ennek rtkeknt kell megadni a vlaszt kezel e e e a o fggvny nevt, mely meg fog h odni a readyState minden egyes u e e v vltozsakor a a status a vlasz HTTP kdja (200 = OK) a o statusText a HTTP vlasz kdjnak szveges vltozata a o a o a responseText a vlasz karaktersorozatknt a e responseXML a vlasz XML formjban a aa
Bevezets e
Mkdsi elv u o e
AJAX keretrendszerek
Hogyan mkdik u o
JavaScript a HTTP krsek kldsrt/vlasz fogadsrt felels specilis ee u e ee a a ae o a objektum lekrse ( XMLHttpRequest) ee a krs inicializlsa (a krs objektum seg egvel): ee aa ee ts e
a vlaszt fogad fggvny kijellse a o u e oe
a krs objektum onreadystatechange attribtumnak bell asa ee u a a t
GET (vagy POST) krs inicializlsa (open fg.) ee aa adat elkldse (send fg.) u e
a vlasz kezelse: a e
vrakozs readyState==4-re (illetve HTTP 200 vlaszra) a a a vlasz kinyerse responseText (vagy responseXML) seg egvel a e ts e vlasz feldolgozsa a a
Bevezets e
Mkdsi elv u o e
AJAX keretrendszerek
Bevezets e
Mkdsi elv u o e
AJAX keretrendszerek
Krs inicializlsa ee aa
function sendRequest(url) { xmlhttp=getRequestObject(); // a vlaszt kezel handler bell asa: a o a t xmlhttp.onreadystatechange=handleResponse; xmlhttp.open("GET",url,true); xmlhttp.send(null); } az open s send fggvnyek paramterei: e u e e open paramterei: metdus (GET, POST, PUT), szerver-oldali e o erforrs URL-je, true=aszinkron krsklds o a ee u e send paramterei: POST adat (GET esetben null) e e
Bevezets e
Mkdsi elv u o e
AJAX keretrendszerek
A vlasz kezelse a e
function handleResponse() { if(xmlhttp.readyState==4) { // A szerverrl rkez vlasz kinyerse (responseText adattag rtke) o e o a e e e alert(xmlhttp.responseText); } } egyszer plda (szerver oldali alkalmazs nlkl): u e a e u lsd: ajaxExample.htm, ajaxExample.js a GET, POST pl., szerver-oldalon PHP AjaxSuggest.htm, clienthint.js, (gethint.php) AjaxSuggest post.htm, clienthint post.js, (gethint post.php) egyszer Servlet-es pl. u ajaxTest.htm, map-els: /showTime.do e
Bevezets e
Mkdsi elv u o e
AJAX keretrendszerek
megjegyzsek e
annak elkerlse, hogy a bngsz a cache-bl tltse be a krt URL-t ue o e o o o e vlasz fejlcnek bell asa: a e e a t Response.CacheControl = no-cache; Response.AddHeader(Pragma, no-cache); Response.Expires = -1; . . . IE-ben nem mindig mkdik . . . u o vltoz rtk (pl. vletlen szm vagy az aktulis dtum) kldse az a oe e e a a a u e URL-ben POST-al kldtt adatok esetn: u o e a send metdus paramtereknt adjuk meg a kldtt adatokat o e e u o (pl. send(val1=ertek1&valt2=ertek2)) klds eltt header-informci bell as(ok)ra van szksg: u e o a o a t u e http.setRequestHeader(Content-type, application/x-www-form-urlencoded);
Bevezets e
Mkdsi elv u o e
AJAX keretrendszerek
XML alap vlasz feldolgozsa u a a a krsobjektum responseXML mezje XML-knt tartalmazza a ee o e vlaszt a ennek feldolgozsa XML DOM seg egvel trtnik a ts e o e Servlet-es pl. setuserxml.htm, map-els: /XMLResponse.do e ha a vlasz JSON jellssel megadott objektum a oe a JSON kifejezst tartalmaz szveget a responseText mezbl e o o o o nyerjk ki u a kifejezs kirtkelhet az eval fggvny seg egvel, vagy egy e e e o u e ts e specializlt JSON feldolgozval a o pl. (a vlaszt egy statikus llomnybl olvassa) a a a o ajaxExample JSON.htm, ajaxExample JSON.js
Bevezets e
Mkdsi elv u o e
AJAX keretrendszerek
XML DOM
XML DOM: XML Document Object Model az XML dokumentumok feldolgozshoz biztos egy standard API-t. aa t a DOM az XML dokumentumot egy fa-szerkezet formjban aa brzolja, melynek csompontjai az elemek, attribtumok, illetve a a o u szvegrszek. o e
Bevezets e
Mkdsi elv u o e
AJAX keretrendszerek
jellemzk: o az XML DOM (Document Object Model for XML) objektum modellt denil az XML dokumentumhoz a az XML DOM platform- illetve nyelvfggetlen u az XML DOM standard hozzfrsmdot biztos az XML aee o t dokumentumokhoz (olvass, mdos as) a o t az XML DOM W3C standard hozzfrs az egyes csompontokhoz: aee o getElementsByTagName(tag-nev) metdus seg egvel o ts e csompontok listjt tr vissza o a a e ti parentNode, rstChild, lastChild mezket hasznlva o a gykr elem: document.documentElement o e
Bevezets e
Mkdsi elv u o e
AJAX keretrendszerek
informci az illet csompontrl az albbi mezkben: a o o o o a o nodeName nodeValue nodeType egy elem attributes mezje az attribtumokat tartalmazza map o u formjban (NamedNodeMap) aa
Bevezets e
Mkdsi elv u o e
AJAX keretrendszerek
AJAX keretrendszerek
AJAX keretrendszer AJAX-ot hasznl web-alkalmazs fejlesztst seg o eszkz ao a ee t o Keretrendszer t pusok kzvetlen AJAX-keretrendszerek o kzvetett AJAX-keretrendszerek magasszint programozsi o u a nyelven (pl. Java, Python) kd JavaScript- lesz ford rt o e tva (pl. GWT) AJAX komponens-keretrendszerek
ksz komponenseket k al fel (pl. flekkel (tab) elltott lapok, e n u a naptr, fa-nzet, drag-and-drop lehetsg) a e oe
Bevezets e
Mkdsi elv u o e
AJAX keretrendszerek
Nhny npszerbb AJAX-keretrendszer e a e u jQuery Prototype Script.aculo.us MooTools Dojo Toolkit GWT Google Webtool Kit
Bevezets e
Mkdsi elv u o e
AJAX keretrendszerek
jQuery
JavaScript fggvnyknyvtr (elgg npszer, ny forrskd, u e o a e e e u lt a o u ingyenes) tmr szintaxis (write less, do more) o o letlts (tmr o e o o tett vagy olvashat formban): o a http://docs.jquery.com/Downloading jQuery#Download jQuery hasznlata: a a letlttt .js llomny HTML oldalba val beszrsa o o a a o ua jQuery kd script elembe gyazva (tipikusan a head elemben) o a
Bevezets e
Mkdsi elv u o e
AJAX keretrendszerek
jQuery - szintaxis
alapvet szintaxis: o $(szelektor).mvelet() u $ jQuery szintaxis rsze e szelektor kivlasztja a megfelel HTML eleme(ke)t a o mvelet a kivlasztott eleme(ke)n vgrehajtsra kerl mvelet u a e a uo u (action) annak elkerlsre, hogy a jQuery kd az oldal betltse eltt hajtdjon ue e o o e o o vgre: e $(document).ready(function(){ // jQuery fggvny... u e });
Bevezets e
Mkdsi elv u o e
AJAX keretrendszerek
jQuery szelektorok
CSS szelektorok HTML elemek, attribtumok kivlasztsra (nhny u a aa e a plda): e $(p) az sszes p elem kivlasztsa o a a $(p.piros) a class=piros st lusosztlyhoz tartoz p elemek a o kivlasztsa a a $(p#elso) p elem, melynek id attribtuma elso u $([href]) az sszes href attribtummal rendelkez elem o u o szelektorok (referencia): http://www.w3schools.com/jquery/jquery ref selectors.asp
Bevezets e
Mkdsi elv u o e
AJAX keretrendszerek
Bevezets e
Mkdsi elv u o e
AJAX keretrendszerek
AjaxSuggest jquery.htm, gethint post.php kt egyszer (szerver oldali programot nem ignyl) plda: e u e o e egyszeru csere.htm, ajax szoveg.txt egyszeru JSON pl.htm, resp JSON