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



Hasonló dokumentumok
AJAX-ot támogató keretrendszerek

AJAX AJAX. AJAX: Asynchronous JavaScript and XML. az alábbi technológiákon alapul: AJAX-ot támogató keretrendszerek

Web-fejlesztés NGM_IN002_1

COMET webalkalmazás fejlesztés. Tóth Ádám Jasmin Media Group

Ajax és Echo 2. Bokor Attila

WWW Kliens-szerver Alapfogalmak Technológiák Terv. Web programozás 1 / 31

Web fejlesztés II. Illés Zoltán ELTE Informatikai Kar I n f o r m a t i k a

AJAX Framework építés. Nagy Attila Gábor Wildom Kft.

Flash és PHP kommunikáció. Web Konferencia 2007 Ferencz Tamás Jasmin Media Group Kft

RIA Rich Internet Application

Web programoz as

Kiknek szól ez a könyv? Miről szól a könyv? Hogyan épül fel a könyv? Mire van szükség a könyv használatához? Szokások Forráskód Hibajegyzék

JAVA webes alkalmazások

WEB-PROGRAMOZÁS II. 1. Egészítse ki a következő PHP kódot a következők szerint: a,b,c,d: <?php. interface Kiir { public function kiir();

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

Grafikus keretrendszer komponensalapú webalkalmazások fejlesztéséhez

A szerzõrõl... vii Köszönetnyilvánítás... ix Bevezetés... xi A könyv példakódjai... xiii Áttekintés... xv Tartalomjegyzék... xvii

WEBFEJLESZTÉS 2. ADATTÁROLÁS, MUNKAMENET- KEZELÉS, AJAX

Jquery. Konstantinusz Kft.

Webes alkalmazások fejlesztése. Bevezetés az ASP.NET MVC 5 keretrendszerbe

AJAX 2 in 1: Interaktív oktatás és modern webtechnológia Nagy Zsolt.

AJAX 2 IN 1: INTERAKTÍV OKTATÁS ÉS MODERN WEBTECHNOLÓGIA

Web programozás. Internet vs. web. Internet: Az Internet nyújtotta néhány alapszolgáltatás:

MicroSigner Közvetítő Szerver fejlesztői dokumentáció

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

Webszolgáltatások (WS)

Bevetés közben Ismerkedés az Ajaxszal

MicroSigner Közvetítő Szerver fejlesztői dokumentáció

Smarty AJAX. Miért jó ez? Ha utálsz gépelni, akkor tudod. Milyen műveletet tudunk elvégezni velük:

Webes alkalmazások fejlesztése

MVC Java EE Java EE Kliensek JavaBeanek Java EE komponensek Web-alkalmazások Fejlesztői környezet. Java Web technológiák

Szoftver Tervezési Dokumentáció. Nguyen Thai Binh

GIS fejlesztés Web platformra nyílt forráskódú ingyenes eszközökkel

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

API tervezése mobil környezetbe. gyakorlat

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

Google Web Toolkit. Elek Márton. Drótposta kft.

Az iskolai rendszerű képzésben az összefüggő szakmai gyakorlat időtartama. 10. évfolyam Adatbázis- és szoftverfejlesztés gyakorlat 50 óra

Ficsor Lajos Általános Informatikai Tanszék Miskolci Egyetem

Osztott alkalmazások fejlesztési technológiái Áttekintés

A J2EE fejlesztési si platform (application. model) 1.4 platform. Ficsor Lajos Általános Informatikai Tanszék Miskolci Egyetem

WEBES ALKALMAZÁSFEJLESZTÉS 1.

A WEB programozása - Bevezetés őszi félév Dr. Gál Tibor

A Java EE 5 plattform

Flex: csak rugalmasan!

XML (DTD) (XSD) DOM SAX XSL. XML feldolgozás

Webes alkalmazások fejlesztése. 9. előadás Bevezetés az ASP.NET MVC keretrendszerbe

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

A leírás bemutatja hogy mint minden másra, Favicon készítésre is alkalmas az ingyenes Gimp rajzolóprogram.

Internet technológiák

Objektumorientált programozás

Szabadkai Műszaki Szakfőiskola. Web programozás. dr Zlatko Čović

Térinformatikai adatbázis web felületen társadalmasítási célokra

Mozgásvizsgálati mérések internetes megjelenítése. Zemkó Szonja - Dr. Siki Zoltán

MicroSigner Közvetítő Szerver fejlesztői dokumentáció

Multimédiás adatbázisok

Tematika A web története Kliens-szerver modell Web alapismeretek Fejlesztési eszközök. Sapientia Erdélyi Magyar Tudományegyetem, Csíkszereda

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

JSF alkalmazások teljesítményhangolása JMeter és dynatrace segítségével

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

Alapfogalmak, WWW, HTTP

InFo-Tech emelt díjas SMS szolgáltatás. kommunikációs protokollja. Ver.: 2.1

Web-fejlesztés NGM_IN002_1

Kompozit alkalmazások fejlesztése. IBM WebSphere Portal Server

Interaktív webes térképezés GRASS GIS 7-tel. A Web Processing Service bemutatása

Web technológiák 2. Gy: JavaScript, AJAX B IT MAN. 81/1 v:

Nyilvántartási Rendszer

A Matarka szerszámosládája

Webes alkalmazások fejlesztése 8. előadás. Webszolgáltatások megvalósítása (ASP.NET WebAPI)

Mobilizálódó OSZK. A nemzeti könyvtár mobileszközöket célzó fejlesztései az elmúlt időszakban. Garamvölgyi László. Networkshop, 2013.

Bevezető. Servlet alapgondolatok

JavaScript bűvésztrükkök, avagy PDF olvasó és böngésző hackelés

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)

SZABADKAI MŰSZAKI SZAKFŐISKOLA. E-mobil prezentáció dokumentációja SZABADKA, 2015.

RIA Rich Internet Application. Komplex felhasználói felülettel rendelkező web-alkalmazások

RIA Rich Internet Application

WEBFEJLESZTÉS 2. AJAX

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

A webhelyhez kötődő szoftverek architektúrája

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

Szerializáció. Tóth Zsolt. Miskolci Egyetem. Tóth Zsolt (Miskolci Egyetem) Szerializáció / 22

DINAMIKUS MULTIMÉDIÁS TARTALOM...

Szervlet-JSP együttműködés

2. Előzmények és előismeretek áttekintése


Webes alapozás. url, http, szerver oldal

10. évfolyam 105 óra azonosító számú Hálózatok, programozás és adatbázis-kezelés 105 óra Adatbázis- és szoftverfejlesztés gyakorlat tantárgy

1. fejezet Bevezetés a web programozásába (Balássy György munkája) Az internet működése... 11

WEB PROGRAMOZÁS 3.ELŐADÁS. Űrlapok

Symfony kurzus 2014/2015 I. félév. Security: authentication, authorization, user provider, role-ok, access control, FOS user bundle

Adatbázis rendszerek 7. előadás State of the art

Földmérési és Távérzékelési Intézet

RBLDNS DNS-based blocklists management felhasználói kézikönyv

Pick Pack Pont kereső és boltválasztó alkalmazás

Ustream.tv Bepillantás egy közösségi élővideo site működésébe

Nem szerencsétlenkedünk többet szörfözés közben! Egy új technológia egyre több

Miért érdemes váltani, mikor ezeket más szoftverek is tudják?

e-szignó Online e-kézbesítés Végrehajtási Rendszerekhez

Üdvözli Önöket A PGY3 tantárgy! Bakay Árpád dr. NETvisor kft (30) arpad.bakay@netvisor.hu

Dr. Pál László, Sapientia EMTE, Csíkszereda WEB PROGRAMOZÁS 5.ELŐADÁS. Sütik és munkamenetek kezelése

Átírás:

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

AJAX AJAX: Asynchronous JavaScript and XML az alábbi technológiákon alapul: (X)HTML, CSS XML JavaScript 2005-ben vált népszerűvé a Google révén (Google Suggest)

Motiváció: igény az interaktív web-alkalmazásra a klasszikus web-alkalmazás sok szempontból nem felel meg ennek az igénynek a teljes oldal frissítése minden kérés/válasz esetén a kliensek előnyben részesítenek egy böngészőben futó web-alkalmazást egy specializált desktop-alkalmazással szemben nem kell kliens oldali alkalmazást telepíteni könnyebb karbantartás

Klasszikus webalkalmazás AJAX-alapú webalkalmazás klasszikus webalkalmazás (szinkron) a kliens HTTP kérést küld a szervernek egy web-erőforrás lekérésére (tipikusan GET vagy POST) a szerver feldolgozza a kérést, és előkészíti a választ a szerver visszaküldi a választ (tipikusan (X)HTML) kliens oldalon a TELJES oldal frissül (akkor is, ha annak egy részén egyáltalán nem történt változás) nagy (részben felesleges) adatforgalom, hosszabb várakozási idő aszinkron modell (AJAX) egy JavaScript esemény hatására HTTP kérés küldődik (aszinkron módon) a szerverre a szerver feldolgozza a kérést, és előkészíti a választ a visszaküldött (szöveges vagy XML formátumú) választ a kezelő függvény értelmezi, és ennek alapján aktualizálja az oldal megfelelő részeit

Más alternatívák a szerverrel való aszinkron kommunikációra Java applet IFrame Flex (Adobe) Silverlight (Microsoft) JavaFX (Sun)

Az XMLHttpRequest API, illetve objektum nem standard, de a legtöbb böngésző támogatja (böngészőfüggő eltérések) használható JavaScript, Jscript, VBScript-ből segítségével aszinkron kapcsolat hozható létre a kliens és szerver között a kérés feldolgozását követően a szerver válasza lehet: egyszerű szöveg XML objektum (JSON jelöléssel megadva)

XMLHttpRequest - folyt. 1 Az XMLHttpRequest objektum metódusai: open( method, URL ) open( method, URL, async ) open( method, URL, async, username ) open( method, URL, async, username, password ) send( content ) getresponseheader( headername ) setrequestheader( label, value ) getallresponseheaders() abort()

XMLHttpRequest - folyt. 2 Az XMLHttpRequest objektum mezői: readystate: 0 a kérés még nincs inicializálva 1 a kérés inicializálva van 2 a kérés el lett küldve 3 a kérés feldolgozás alatt áll 4 megérkezett a válasz onreadystatechange ennek értékeként kell megadni a választ kezelő függvény nevét, mely meg fog hívódni a readystate minden egyes változásakor status a válasz HTTP kódja (200 = OK ) statustext a HTTP válasz kódjának szöveges változata responsetext a válasz karaktersorozatként responsexml a válasz XML formájában

Hogyan működik JavaScript a HTTP kérések küldéséért/válasz fogadásáért felelős speciális objektum lekérése ( XMLHttpRequest) a kérés inicializálása (a kérés objektum segítségével): a választ fogadó függvény kijelölése a kérés objektum onreadystatechange attribútumának beálĺıtása GET (vagy POST) kérés inicializálása (open fg.) adat elküldése (send fg.) a válasz kezelése: várakozás readystate==4-re (illetve HTTP 200 válaszra) válasz kinyerése responsetext (vagy responsexml) segítségével válasz feldolgozása HTML JavaScript kód betöltése a kérést generáló HTML elem/esemény kijelölése

Kérés objektum lekérése var xmlhttp; function getrequestobject() { if (window.xmlhttprequest) { // IE7+, Firefox, Chrome, Opera, Safari return(new XMLHttpRequest()); } else if (window.activexobject) { // IE6, IE5 return(new ActiveXObject("Microsoft.XMLHTTP")); } else { // a böngésző nem támogatja egyik típusú objektumot sem return(null); } }

Kérés inicializálása function sendrequest(url) { xmlhttp=getrequestobject(); // a választ kezelő handler beálĺıtása: xmlhttp.onreadystatechange=handleresponse; xmlhttp.open("get",url,true); xmlhttp.send(null); } az open és send függvények paraméterei: open paraméterei: metódus (GET, POST, PUT), szerver-oldali erőforrás URL-je, true=aszinkron kérésküldés send paraméterei: POST adat (GET esetében null)

A válasz kezelése function handleresponse() { if(xmlhttp.readystate==4) { // A szerverről érkező válasz kinyerése (responsetext adattag értéke) alert(xmlhttp.responsetext); } } egyszerű példa (szerver oldali alkalmazás nélkül): lásd: ajaxexample.htm, ajaxexample.js 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. ajaxtest.htm, map-elés: /showtime.do

megjegyzések annak elkerülése, hogy a böngésző a cache-ből töltse be a kért URL-t válasz fejlécének beálĺıtása: Response.CacheControl = no-cache ; Response.AddHeader( Pragma, no-cache ); Response.Expires = -1;... IE-ben nem mindig működik... változó érték (pl. véletlen szám vagy az aktuális dátum) küldése az URL-ben POST-al küldött adatok esetén: a send metódus paramétereként adjuk meg a küldött adatokat (pl. send( val1=ertek1&valt2=ertek2 )) küldés előtt header-információ beálĺıtás(ok)ra van szükség: http.setrequestheader( Content-type, application/x-www-form-urlencoded );

XML alapú válasz feldolgozása a kérésobjektum responsexml mezője XML-ként tartalmazza a választ ennek feldolgozása XML DOM segítségével történik Servlet-es pl. setuserxml.htm, map-elés: /XMLResponse.do ha a válasz JSON jelöléssel megadott objektum a JSON kifejezést tartalmazó szöveget a responsetext mezőből nyerjük ki a kifejezés kiértékelhető az eval függvény segítségével, vagy egy specializált JSON feldolgozóval pl. (a választ egy statikus állományból olvassa) ajaxexample JSON.htm, ajaxexample JSON.js

XML DOM XML DOM: XML Document Object Model az XML dokumentumok feldolgozásához biztosít egy standard API-t. a DOM az XML dokumentumot egy fa-szerkezet formájában ábrázolja, melynek csomópontjai az elemek, attribútumok, illetve szövegrészek.

jellemzők: az XML DOM (Document Object Model for XML) objektum modellt definiál az XML dokumentumhoz az XML DOM platform- illetve nyelvfüggetlen az XML DOM standard hozzáférésmódot biztosít az XML dokumentumokhoz (olvasás, módosítás) az XML DOM W3C standard hozzáférés az egyes csomópontokhoz: getelementsbytagname( tag-nev ) metódus segítségével csomópontok listáját téríti vissza parentnode, firstchild, lastchild mezőket használva gyökér elem: document.documentelement

információ az illető csomópontról az alábbi mezőkben: nodename nodevalue nodetype egy elem attributes mezője az attribútumokat tartalmazza map formájában (NamedNodeMap)

AJAX keretrendszerek AJAX keretrendszer AJAX-ot használó web-alkalmazás fejlesztését segítő eszköz Keretrendszer típusok közvetlen AJAX-keretrendszerek közvetett AJAX-keretrendszerek magasszintű programozási nyelven (pl. Java, Python) írt kód JavaScript-é lesz fordítva (pl. GWT) AJAX komponens-keretrendszerek kész komponenseket kínál fel (pl. fülekkel (tab) ellátott lapok, naptár, fa-nézet, drag-and-drop lehetőség) AJAX-ot támogató funkciókkal ellátott szerver oldali keretrendszerek (pl. JSONRPC, XMLRPC)

Néhány népszerűbb AJAX-keretrendszer Prototype JQuery Script.aculo.us MooTools Dojo Toolkit GWT Google Webtool Kit