Tehnologiile RIA permit crearea de aplicatii Web complexe. Scopul este acela de a estompa diferentele referitoare la interfete si timp de raspuns fata de aplicatiile desktop clasice.
7.1. Ajax
Tehnologia AJAX (Asynchronous JavaScript and
XML) nu propune un limbaj nou ci un model nou de abordare a implementarii
aplicatiilor Web. Intr-adevar, nu se propune nici un limbaj nou ci o modalitate
noua de a combina tehnologiile existente.
Idea de baza pe care se sprijina
Ajax este acea de a utiliza obiecte JavaScript de tip XMLHttpRequest pentru a
face apeluri asincrone catre serverul de Web. In acest fel se va evita
reincarcarea paginii Web ori de cate ori sunt necesare date de la
server.
Aplicatiile Web care folosesc Ajax devin astfel mai mici, mai
rapide si mai prietenoase.
Tehnologia Ajax este un standard actual,
majoritatea navigatoarelor suportand XMLHttpRequest (Internet Explorer,
Firefox, Chrome, Opera, Safari). In continuare se va prezenta o scurta
functie care detecteaza tipul de browser si instantiaza obiectul
XMLHttp in mod corespunzator:
function
ajaxFunction()
{
var xmlhttp;
if (window.XMLHttpRequest)
{
// for IE7+, Firefox, Opera, Safari
xmlhttp=new
XMLHttpRequest();
}
else if
(window.ActiveXObject)
{
// for IE6,
IE5
xmlhttp=new
ActiveXObject
("Microsoft.XMLHTTP");
}
else
{
alert("Your
browser does not
support XMLHTTP!");
}
}
Proprietatile
obiectului XMLHttpRequest sunt:
- onreadystatechange Permite
implemenatrea unei functii care sa prelucreaze datele primite de la server.
Aceasta functie va fi apelata automat de catre browser in momentul cand apar
evenimente asociate unei cereri XMLHttp. Pentru crearea acestei functii poate fi
utilizat codul:
xmlhttp.onreadystatechange=function()
{
//
prelucrarea datelor de la server
}
-
readyState Aceasta proprietate pastreaza codul starii in care
se afla raspunsul la ultima cerere efectuata. Valorile posibile
sunt:
0 Cererea nu a fost initializata
1 Cererea este pregatita
2 Cererea a
fost trimisa
3 Cererea este in
procesare
4 Cererea este completa
La fiecare modificare
a valorii variabilei readyState browserul va executa automat functia asociata
proprietatii onreadystatechange. Aceasta va testa incheierea cererii si apoi va
prelucra datele primite:
xmlhttp.onreadystatechange=function()
{
if(xmlhttp.readyState==4)
{
// Prelucreaza datele primite
}
}
-
responseText/responseXML Permite accesarea datelor din
raspunsul serverului. Acestea sunt de obicei impachetate in format text
sau XML.
xmlhttp.onreadystatechange=function()
{
if(xmlhttp.readyState==4)
{
document.myForm.afisaj.value =
xmlhttp.responseText;
}
}
Pentru a trimite
cererea catre server, programul va apela functiile
open() si send() ale
obiectului XMLHttpRequest. Functia open() primeste
trei parametrii. Primul specifica metoda de transmitere a datelor
(GET sau POST), cel de al
doilea specfica care pagina de pe server (PHP, ASP etc.) va
prelucra cererea, iar ultimul parametru trebuie sa fie
true pentru apeluri asincrone. In cazul functiei
send, parametrul va fi null in cazul apelurilor GET la
pagini din acelasi director de pe server.
Pentru a modifica o portiune a
paginii curente, aceasta portiune poate fi inclusa intr-un tag
<div>. Exemplu:
//
fisierul ajax1.html
<html>
<head>
<title>Exemplu Ajax
</title>
<script type="text/javascript">
function
ajax()
{
var xmlhttp;
if
(window.XMLHttpRequest)
{
// code for IE7+, Firefox
...
xmlhttp=new
XMLHttpRequest();
}
else
{
//
code for IE6, IE5
xmlhttp=new
ActiveXObject
("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function()
{
if(xmlhttp.readyState==4) {
document.getElementById
('panou').innerHTML=
xmlhttp.responseText;
}
}
xmlhttp.open("GET","ajaxRepl.php",
true);
xmlhttp.send(null);
}
</script>
</head>
<body>
<div id='panou'>
<h2>Text
HTML</h2><br>
Textul este continut in fisierul
HTML.
</div>
<form
name="f1">
<input type="button" name="Schimba" value="Schimba"
onClick="ajax();">
</form>
</body>
</html>
// fisierul ajaxRepl.php
<?php
echo '<h2>Text
PHP</h2><br>Text
generat din PHP';
?>
Pentru mai
multe informatii consultati tutoriale Ajax la w3Schools, ajaxtutorials si tizag.
Pentru a crea aplicatii
complexe se poate apela si la biblioteci ajax cum ar fi Google code, jQuery sau Dojo.
7.2. Adobe Flex
Adobe Flex a fost creat de Adobe Systems si este destinat crearii de aplicatii interactive RIA. El imbina formatul MXML (Macromedia XML) cu limbajul de tip script Actionscript. Rezultatul final este un fisier Flash (SWF) care cuprinde elemente de interfata interactive.Scurt Istoric. Date Multimedia. Tehnologii specifice.
...
Cicluri de dezvoltare. Modele arhitecturale. Analiza cerintelor. Proiectarea
aplicatiei.
...
Implementarea interfetelor. Limbajele HTML, XHTML, CSS.
...
Limbajul JavaScript. Modelul DOM. Adobe Flash. Limbajul ActionScript.
...
Limbajul PHP. Generarea elementelor multimedia. Librariile GD si
PDFLib.
...
Structura unui document SMIL. Obiecte multimedia. Sincronizarea obiectelor multimedia. Legături. Unelte. ...
Tehnologii utilizate în dezvoltarea aplicatiilor de tip RIA. Tehnologia Ajax. Google Ajax API. Adobe Flex. Scalable Vector Graphics (SVG) ...
© 2009 conf.dr.ing. Dan Pescaru. All rights reserved