SlideShare a Scribd company logo
Cercul de Rich Internet Applications
          XML, PHP, ByteArray




          Facultatea de Informatică
                     Iași
XML - eXtensible Markup Language

• Așa cum spune și denumirea, este un limbaj
  pentru marcare extensibil….
• Cam așa arată:




                  http://www.info.uaic.ro/~flash   2
XML - eXtensible Markup Language
<lista_filme>
   <film>
        <nume>Inglorious Bastards</nume>
        <autor>Quentin Tarantino</autor>
   </film>
   <film>
        <nume>Fight Club</nume>
        <autor>David Fincher</autor>
   </film>
    ………………..
    ………………..
</lista_filme>

                       http://www.info.uaic.ro/~flash   3
XML - eXtensible Markup Language
<prieteni>
  <prieten>
       <nume>Becali</nume>
       <prenume>George</prenume>
       <telefon>0744666999</telefon>
  </prieten>
  <prieten>
      <nume>Geoana</nume>
      <prenume>Dan</prenume>
      <prenume>Mircea</prenume>
      <email>mgeoana@yahoo.com</email>
  </prieten>
   ………………..
   ………………..
</prieteni>


                            http://www.info.uaic.ro/~flash   4
XML – în 10 puncte*

1 - XML structurează datele (informațiile)
2 - XML seamănă un pic cu HTML
3 - XML este text, dar nu e făcut pentru a fi citit
4 - XML este 'vorbareț' prin design
5 - XML este o familie de tehnologii (SVG, MXML
  etc.)


* - http://www.siteuri.ro/developer/xml-in-10-points.ro.html
                                  http://www.info.uaic.ro/~flash   5
XML – în 10 puncte*
6 - XML e nou, dar nu chiar atât de nou
7 - XML tranformă HTML în XHTML
8 - XML este modular
9 - XML este baza RDF-ului și Web-ului Semantic
10 - XML funcționează pe orice platformă, este
   suportat bine și nu are nevoie de licență




* - http://www.siteuri.ro/developer/xml-in-10-points.ro.html
                                  http://www.info.uaic.ro/~flash   6
În AS3 – poate fi declarat în aplicație




                 http://www.info.uaic.ro/~flash   7
În AS3 – poate fi declarat în aplicație




                 http://www.info.uaic.ro/~flash   8
XML – poate fi încărcat din fișier extern




                 http://www.info.uaic.ro/~flash   9
XML – ce ați mai putea citi voi…

• XSL – pentru a formata un XML
• DOM / SAX – pentru a parcurge un XML
• DTD / Schema – pentru a testa corectitudinea
  unui XML la nivel sintactic (dacă se conformează
  unui anumit șablon spre exemplu)




                   http://www.info.uaic.ro/~flash   10
În AS3 – Pentru acest XML…




               http://www.info.uaic.ro/~flash   11
XML – cum se parcurge:

• De exemplu după ce a fost încărcat:




                   http://www.info.uaic.ro/~flash   12
XML – cum se parcurge:

• De exemplu după ce a fost încărcat:




                   http://www.info.uaic.ro/~flash   13
XML – cum se parcurge:

• De exemplu după ce a fost încărcat:




                   http://www.info.uaic.ro/~flash   14
XML – cum se parcurge:

• De exemplu după ce a fost încărcat:




                   http://www.info.uaic.ro/~flash   15
XML – cum se parcurge:

• De exemplu după ce a fost încărcat:




                   http://www.info.uaic.ro/~flash   16
XML – preluarea atribute:




                                                 2009



                http://www.info.uaic.ro/~flash          17
XML – inserarea unui element




             http://www.info.uaic.ro/~flash   18
XML – alte comenzi

insertChildAfter
insertChildBefore
Replace
hasSimpleContent
hasComplexContent
attributes

Etc, etc…
Sa încercam să facem un exemplu….
                 http://www.info.uaic.ro/~flash   19
In Flex e even easier:

• Punem un DataGrid, apoi:




                  http://www.info.uaic.ro/~flash   20
Some PHP

• Câteva cuvinte despre PHP …




                  http://www.info.uaic.ro/~flash   21
Some PHP

• Am putea ca atunci când facem “load” să nu
  dăm ca sursă un fișier PHP – dacă acolo avem o
  variabilă, atunci aceasta se poate încărca ca o
  variabilă; dacă PHPul generează un XML, PHP-ul
  poate fi încărcat ca un XML.




                   http://www.info.uaic.ro/~flash   22
Some PHP

• Putem spre exemplu să preluăm datele dintr-o
  bază de date (MySQL), să construim pe baza
  acestor date un XML pe care să îl “livrăm”
  aplicației Flash.



• Leț Trai It


                  http://www.info.uaic.ro/~flash   23
Să facem un RSS Reader

• În design mode o să avem:




                  http://www.info.uaic.ro/~flash   24
Să facem un RSS Reader

                                              Un TextInput cu
                                              id=myTextInput




             http://www.info.uaic.ro/~flash               25
Să facem un RSS Reader




                                         Un Buton cu
                                  click="myRSSFeed.send()"




             http://www.info.uaic.ro/~flash             26
Să facem un RSS Reader




                                      Un DataGrid… revenim
                                            asupra lui




             http://www.info.uaic.ro/~flash              27
Să facem un RSS Reader



                                                Un TextArea
                                              id="myTextArea"




             http://www.info.uaic.ro/~flash                     28
Să facem un RSS Reader




             http://www.info.uaic.ro/~flash   29
XML…

XML – sooper trooper: există multe aplicații care
 să-l înțeleagă, e ușor de înțeles și de modificat
 de către om etc… etc…

Problema este cu XMLurile foarte foarte mari…
Pentru a parcurge XMLul, el trebuie să fie complet
  încărcat în memorie după care să i se
  construiască arborele DOM. Construirea
  arborelui DOM – mare mâncătoare de memorie
                    http://www.info.uaic.ro/~flash   30
ByteArray
• Nu dorim să dăm cu piatra în XML – are avantajele
  lui
• Când e vorba de comunicare / reprezentarea
  informațiilor utilizând minimum de memorie,
  soluția ideală este dată de obiectele de tip
  ByteArray (șir de octeți)
• Obiectele de tip ByteArray pot fi citite/scrise super
  rapid (darrrr… nu pot fi înțelese de către om, nu
  sunt structurate)



                     http://www.info.uaic.ro/~flash   31
ByteArray




            http://www.info.uaic.ro/~flash   32
Comunicarea utilizând variabile




              http://www.info.uaic.ro/~flash   33
Putem salva ByteArray-ul pe disc ? (PHP)

• Dap:




                  http://www.info.uaic.ro/~flash   34
Test it…




http://www.info.uaic.ro/~flash   35

More Related Content

Similar to Flash Super Marathon

Modelarea datelor via XML. Design patterns in contextul specificarii document...
Modelarea datelor via XML. Design patterns in contextul specificarii document...Modelarea datelor via XML. Design patterns in contextul specificarii document...
Modelarea datelor via XML. Design patterns in contextul specificarii document...Sabin Buraga
 
Web 2020 07/12: Procesarea datelor XML & HTML – Simple API for XML. Procesări...
Web 2020 07/12: Procesarea datelor XML & HTML – Simple API for XML. Procesări...Web 2020 07/12: Procesarea datelor XML & HTML – Simple API for XML. Procesări...
Web 2020 07/12: Procesarea datelor XML & HTML – Simple API for XML. Procesări...Sabin Buraga
 
Web 2016 (09/13) Procesarea datelor XML & HTML. Simple API for XML. Procesări...
Web 2016 (09/13) Procesarea datelor XML & HTML. Simple API for XML. Procesări...Web 2016 (09/13) Procesarea datelor XML & HTML. Simple API for XML. Procesări...
Web 2016 (09/13) Procesarea datelor XML & HTML. Simple API for XML. Procesări...Sabin Buraga
 
Web 2016 (04/13) Programare Web – Dezvoltarea aplicațiilor Web în PHP
Web 2016 (04/13) Programare Web – Dezvoltarea aplicațiilor Web în PHPWeb 2016 (04/13) Programare Web – Dezvoltarea aplicațiilor Web în PHP
Web 2016 (04/13) Programare Web – Dezvoltarea aplicațiilor Web în PHPSabin Buraga
 
Istoria Web-ului - part 2 - tentativ How to Web 2009
Istoria Web-ului - part 2 - tentativ How to Web 2009Istoria Web-ului - part 2 - tentativ How to Web 2009
Istoria Web-ului - part 2 - tentativ How to Web 2009Traian Rebedea
 
Web browser extension development
Web browser extension developmentWeb browser extension development
Web browser extension developmentPandaciuc Ilie
 
CLIW 2014—2015 (8/12): JavaScript în navigatorul Web
CLIW 2014—2015 (8/12): JavaScript în navigatorul WebCLIW 2014—2015 (8/12): JavaScript în navigatorul Web
CLIW 2014—2015 (8/12): JavaScript în navigatorul WebSabin Buraga
 
Web Storage Performance
Web Storage PerformanceWeb Storage Performance
Web Storage PerformanceMihai Valache
 
Studiu Comparativ Privind API-urile de Procesare RDF Inplementate in PHP
Studiu Comparativ Privind API-urile de Procesare RDF Inplementate in PHPStudiu Comparativ Privind API-urile de Procesare RDF Inplementate in PHP
Studiu Comparativ Privind API-urile de Procesare RDF Inplementate in PHPaledi
 
CLIW 2017-2018 (7/12) JavaScript în navigatorul Web. De la DOM la Ajax şi mas...
CLIW 2017-2018 (7/12) JavaScript în navigatorul Web. De la DOM la Ajax şi mas...CLIW 2017-2018 (7/12) JavaScript în navigatorul Web. De la DOM la Ajax şi mas...
CLIW 2017-2018 (7/12) JavaScript în navigatorul Web. De la DOM la Ajax şi mas...Sabin Buraga
 
STAW 06/12: JavaScript în navigatorul Web. De la DOM la Ajax şi mash-up-uri
STAW 06/12: JavaScript în navigatorul Web. De la DOM la Ajax şi mash-up-uriSTAW 06/12: JavaScript în navigatorul Web. De la DOM la Ajax şi mash-up-uri
STAW 06/12: JavaScript în navigatorul Web. De la DOM la Ajax şi mash-up-uriSabin Buraga
 
Fii linked data
Fii linked dataFii linked data
Fii linked datateodora001
 
Fii linked data
Fii linked dataFii linked data
Fii linked datateodora001
 

Similar to Flash Super Marathon (20)

Modelarea datelor via XML. Design patterns in contextul specificarii document...
Modelarea datelor via XML. Design patterns in contextul specificarii document...Modelarea datelor via XML. Design patterns in contextul specificarii document...
Modelarea datelor via XML. Design patterns in contextul specificarii document...
 
Web 2020 07/12: Procesarea datelor XML & HTML – Simple API for XML. Procesări...
Web 2020 07/12: Procesarea datelor XML & HTML – Simple API for XML. Procesări...Web 2020 07/12: Procesarea datelor XML & HTML – Simple API for XML. Procesări...
Web 2020 07/12: Procesarea datelor XML & HTML – Simple API for XML. Procesări...
 
Web 2016 (09/13) Procesarea datelor XML & HTML. Simple API for XML. Procesări...
Web 2016 (09/13) Procesarea datelor XML & HTML. Simple API for XML. Procesări...Web 2016 (09/13) Procesarea datelor XML & HTML. Simple API for XML. Procesări...
Web 2016 (09/13) Procesarea datelor XML & HTML. Simple API for XML. Procesări...
 
Introducere in Flex si AIR
Introducere in Flex si AIRIntroducere in Flex si AIR
Introducere in Flex si AIR
 
Web 2016 (04/13) Programare Web – Dezvoltarea aplicațiilor Web în PHP
Web 2016 (04/13) Programare Web – Dezvoltarea aplicațiilor Web în PHPWeb 2016 (04/13) Programare Web – Dezvoltarea aplicațiilor Web în PHP
Web 2016 (04/13) Programare Web – Dezvoltarea aplicațiilor Web în PHP
 
Istoria Web-ului - part 2 - tentativ How to Web 2009
Istoria Web-ului - part 2 - tentativ How to Web 2009Istoria Web-ului - part 2 - tentativ How to Web 2009
Istoria Web-ului - part 2 - tentativ How to Web 2009
 
Web browser extension development
Web browser extension developmentWeb browser extension development
Web browser extension development
 
CLIW 2014—2015 (8/12): JavaScript în navigatorul Web
CLIW 2014—2015 (8/12): JavaScript în navigatorul WebCLIW 2014—2015 (8/12): JavaScript în navigatorul Web
CLIW 2014—2015 (8/12): JavaScript în navigatorul Web
 
Patrascu Mihaela Hanelore Conceptul World Wide Web
Patrascu Mihaela Hanelore Conceptul World Wide Web Patrascu Mihaela Hanelore Conceptul World Wide Web
Patrascu Mihaela Hanelore Conceptul World Wide Web
 
Web Storage Performance
Web Storage PerformanceWeb Storage Performance
Web Storage Performance
 
Studiu Comparativ Privind API-urile de Procesare RDF Inplementate in PHP
Studiu Comparativ Privind API-urile de Procesare RDF Inplementate in PHPStudiu Comparativ Privind API-urile de Procesare RDF Inplementate in PHP
Studiu Comparativ Privind API-urile de Procesare RDF Inplementate in PHP
 
Capitolul 3
Capitolul 3Capitolul 3
Capitolul 3
 
CLIW 2017-2018 (7/12) JavaScript în navigatorul Web. De la DOM la Ajax şi mas...
CLIW 2017-2018 (7/12) JavaScript în navigatorul Web. De la DOM la Ajax şi mas...CLIW 2017-2018 (7/12) JavaScript în navigatorul Web. De la DOM la Ajax şi mas...
CLIW 2017-2018 (7/12) JavaScript în navigatorul Web. De la DOM la Ajax şi mas...
 
HTML5? HTML5!
HTML5? HTML5!HTML5? HTML5!
HTML5? HTML5!
 
STAW 06/12: JavaScript în navigatorul Web. De la DOM la Ajax şi mash-up-uri
STAW 06/12: JavaScript în navigatorul Web. De la DOM la Ajax şi mash-up-uriSTAW 06/12: JavaScript în navigatorul Web. De la DOM la Ajax şi mash-up-uri
STAW 06/12: JavaScript în navigatorul Web. De la DOM la Ajax şi mash-up-uri
 
Fii linked data
Fii linked dataFii linked data
Fii linked data
 
Fii linked data
Fii linked dataFii linked data
Fii linked data
 
Fii linked data
Fii linked dataFii linked data
Fii linked data
 
Catalog online
Catalog onlineCatalog online
Catalog online
 
Fii linked data
Fii linked dataFii linked data
Fii linked data
 

Flash Super Marathon

  • 1. Cercul de Rich Internet Applications XML, PHP, ByteArray Facultatea de Informatică Iași
  • 2. XML - eXtensible Markup Language • Așa cum spune și denumirea, este un limbaj pentru marcare extensibil…. • Cam așa arată: http://www.info.uaic.ro/~flash 2
  • 3. XML - eXtensible Markup Language <lista_filme> <film> <nume>Inglorious Bastards</nume> <autor>Quentin Tarantino</autor> </film> <film> <nume>Fight Club</nume> <autor>David Fincher</autor> </film> ……………….. ……………….. </lista_filme> http://www.info.uaic.ro/~flash 3
  • 4. XML - eXtensible Markup Language <prieteni> <prieten> <nume>Becali</nume> <prenume>George</prenume> <telefon>0744666999</telefon> </prieten> <prieten> <nume>Geoana</nume> <prenume>Dan</prenume> <prenume>Mircea</prenume> <email>mgeoana@yahoo.com</email> </prieten> ……………….. ……………….. </prieteni> http://www.info.uaic.ro/~flash 4
  • 5. XML – în 10 puncte* 1 - XML structurează datele (informațiile) 2 - XML seamănă un pic cu HTML 3 - XML este text, dar nu e făcut pentru a fi citit 4 - XML este 'vorbareț' prin design 5 - XML este o familie de tehnologii (SVG, MXML etc.) * - http://www.siteuri.ro/developer/xml-in-10-points.ro.html http://www.info.uaic.ro/~flash 5
  • 6. XML – în 10 puncte* 6 - XML e nou, dar nu chiar atât de nou 7 - XML tranformă HTML în XHTML 8 - XML este modular 9 - XML este baza RDF-ului și Web-ului Semantic 10 - XML funcționează pe orice platformă, este suportat bine și nu are nevoie de licență * - http://www.siteuri.ro/developer/xml-in-10-points.ro.html http://www.info.uaic.ro/~flash 6
  • 7. În AS3 – poate fi declarat în aplicație http://www.info.uaic.ro/~flash 7
  • 8. În AS3 – poate fi declarat în aplicație http://www.info.uaic.ro/~flash 8
  • 9. XML – poate fi încărcat din fișier extern http://www.info.uaic.ro/~flash 9
  • 10. XML – ce ați mai putea citi voi… • XSL – pentru a formata un XML • DOM / SAX – pentru a parcurge un XML • DTD / Schema – pentru a testa corectitudinea unui XML la nivel sintactic (dacă se conformează unui anumit șablon spre exemplu) http://www.info.uaic.ro/~flash 10
  • 11. În AS3 – Pentru acest XML… http://www.info.uaic.ro/~flash 11
  • 12. XML – cum se parcurge: • De exemplu după ce a fost încărcat: http://www.info.uaic.ro/~flash 12
  • 13. XML – cum se parcurge: • De exemplu după ce a fost încărcat: http://www.info.uaic.ro/~flash 13
  • 14. XML – cum se parcurge: • De exemplu după ce a fost încărcat: http://www.info.uaic.ro/~flash 14
  • 15. XML – cum se parcurge: • De exemplu după ce a fost încărcat: http://www.info.uaic.ro/~flash 15
  • 16. XML – cum se parcurge: • De exemplu după ce a fost încărcat: http://www.info.uaic.ro/~flash 16
  • 17. XML – preluarea atribute: 2009 http://www.info.uaic.ro/~flash 17
  • 18. XML – inserarea unui element http://www.info.uaic.ro/~flash 18
  • 19. XML – alte comenzi insertChildAfter insertChildBefore Replace hasSimpleContent hasComplexContent attributes Etc, etc… Sa încercam să facem un exemplu…. http://www.info.uaic.ro/~flash 19
  • 20. In Flex e even easier: • Punem un DataGrid, apoi: http://www.info.uaic.ro/~flash 20
  • 21. Some PHP • Câteva cuvinte despre PHP … http://www.info.uaic.ro/~flash 21
  • 22. Some PHP • Am putea ca atunci când facem “load” să nu dăm ca sursă un fișier PHP – dacă acolo avem o variabilă, atunci aceasta se poate încărca ca o variabilă; dacă PHPul generează un XML, PHP-ul poate fi încărcat ca un XML. http://www.info.uaic.ro/~flash 22
  • 23. Some PHP • Putem spre exemplu să preluăm datele dintr-o bază de date (MySQL), să construim pe baza acestor date un XML pe care să îl “livrăm” aplicației Flash. • Leț Trai It http://www.info.uaic.ro/~flash 23
  • 24. Să facem un RSS Reader • În design mode o să avem: http://www.info.uaic.ro/~flash 24
  • 25. Să facem un RSS Reader Un TextInput cu id=myTextInput http://www.info.uaic.ro/~flash 25
  • 26. Să facem un RSS Reader Un Buton cu click="myRSSFeed.send()" http://www.info.uaic.ro/~flash 26
  • 27. Să facem un RSS Reader Un DataGrid… revenim asupra lui http://www.info.uaic.ro/~flash 27
  • 28. Să facem un RSS Reader Un TextArea id="myTextArea" http://www.info.uaic.ro/~flash 28
  • 29. Să facem un RSS Reader http://www.info.uaic.ro/~flash 29
  • 30. XML… XML – sooper trooper: există multe aplicații care să-l înțeleagă, e ușor de înțeles și de modificat de către om etc… etc… Problema este cu XMLurile foarte foarte mari… Pentru a parcurge XMLul, el trebuie să fie complet încărcat în memorie după care să i se construiască arborele DOM. Construirea arborelui DOM – mare mâncătoare de memorie http://www.info.uaic.ro/~flash 30
  • 31. ByteArray • Nu dorim să dăm cu piatra în XML – are avantajele lui • Când e vorba de comunicare / reprezentarea informațiilor utilizând minimum de memorie, soluția ideală este dată de obiectele de tip ByteArray (șir de octeți) • Obiectele de tip ByteArray pot fi citite/scrise super rapid (darrrr… nu pot fi înțelese de către om, nu sunt structurate) http://www.info.uaic.ro/~flash 31
  • 32. ByteArray http://www.info.uaic.ro/~flash 32
  • 33. Comunicarea utilizând variabile http://www.info.uaic.ro/~flash 33
  • 34. Putem salva ByteArray-ul pe disc ? (PHP) • Dap: http://www.info.uaic.ro/~flash 34