AJAX-ot támogató keretrendszerek

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

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

RIA Rich Internet Application

Ajax és Echo 2. Bokor Attila

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

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();

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.

Jquery. Konstantinusz Kft.

Web programoz as

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

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

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

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

JAVA webes alkalmazások

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

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

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

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

Webes alkalmazások fejlesztése

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

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

Információs technológiák 7. Ea: Nagyvilági teletext. Hon-laposítás

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

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

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

Webszolgáltatások (WS)

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

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

Flex: csak rugalmasan!

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

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

Bevetés közben Ismerkedés az Ajaxszal

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)

Objektumorientált programozás

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

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

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

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

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

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

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

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

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

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

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

WEBES ALKALMAZÁSFEJLESZTÉS 1.

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

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

RIA Rich Internet Application

Multimédiás adatbázisok

Multimédia 2017/2018 II.

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

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

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

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

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

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

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

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

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

TEXTAREA++ a JavaScript ereje

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

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

Internet technológiák

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

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

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

Nyilvántartási Rendszer

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

Bevezető. Servlet alapgondolatok

A Java EE 5 plattform

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

MVC. Model View Controller

Web-fejlesztés NGM_IN002_1

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

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

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

Két tűz között. statikus site generátorok és javascript alkalmazások és a Drupal

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

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

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

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

Többfelhasználós és internetes térkép kezelés, megjelenítés

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

A Matarka szerszámosládája

Bevezetés DOM Script beszúrás Szintaxis Események Beépített objektumok. Kliens oldali script nyelvek - JavaScript

VALUTAISMERTETŐ FUNKCIÓNÁLIS SPECIFIKÁCIÓ

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

Automatikus infrastruktúra menedzsment és alkalmazástelepítés

A JavaScript főbb tulajdonságai

Kliens oldali script nyelvek - JavaScript

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

WEBFEJLESZTÉS 2. AJAX

A jquery.clickheat egy jquery plugin, ami lekezeli a kattintásokat a kijelölt tartományban. jquery.clickheat

Web-fejlesztés NGM_IN002_1

Átírás:

AJAX

Á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

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

jquery JavaScript függvénykönyvtár (eléggé népszerű, nyílt forráskódú, ingyenes) tömör szintaxis ( write less, do more ) letöltés (tömörített vagy olvasható formában): http://docs.jquery.com/downloading jquery#download jquery használata: a letöltött.js állomány HTML oldalba való beszúrása jquery kód script elembe ágyazva (tipikusan a head elemben)

jquery - szintaxis alapvető szintaxis: $(szelektor).művelet() $ jquery szintaxis része szelektor kiválasztja a megfelelő HTML eleme(ke)t művelet a kiválasztott eleme(ke)n végrehajtásra kerülő művelet (action) annak elkerülésére, hogy a jquery kód az oldal betöltése előtt hajtódjon végre: $(document).ready(function(){ // jquery függvény... });

jquery szelektorok CSS szelektorok HTML elemek, attribútumok kiválasztására (néhány példa): $( p ) az összes p elem kiválasztása $( p.piros ) a class= piros stílusosztályhoz tartozó p elemek kiválasztása $( p#elso ) p elem, melynek id attribútuma elso $( [href] ) az összes href attribútummal rendelkező elem szelektorok (referencia): http://www.w3schools.com/jquery/jquery ref selectors.asp

jquery AJAX függvények $(selector).load(url,data,callback) (távoli) adat betöltése a kiválasztott elemekbe $.ajax(options) adat betöltése egy XMLHttpRequest objektumba $.get(url,data,callback,type) adat betöltése HTTP GET segítségével $.post(url,data,callback,type) adat betöltése HTTP POST segítségével $.getjson(url,data,callback) JSON kifejezéssel megadott adat betöltése HTTP GET segítségével $.getscript(url,callback) (távoli) JavaScript állomány betöltése és végrehajtása bővebb leírás: http://api.jquery.com/category/ajax/

Példák - jquery + AJAX AjaxSuggest jquery.htm, gethint post.php két egyszerű (szerver oldali programot nem igénylő) példa: egyszeru csere.htm, ajax szoveg.txt egyszeru JSON pl.htm, resp JSON