Javascript no SAPO e libsapojs

Loading...

Flash Player 9 (or above) is needed to view presentations.
We have detected that you do not have it on your computer. To install it, go here.

0 comments

Post a comment

    Post a comment
    Embed Video
    Edit your comment Cancel

    1 Group

    Javascript no SAPO e libsapojs - Presentation Transcript

    1. Lib.SAPO.JS Codebits 2007 – 14/11/2007 9 da manhã??!! -_- Cláudio Gamboa <gamboa@co.sapo.pt>
    2. Lib.SAPO.JS JavaScript ● AJAX ● JSON ● Script tag hack ● Lib.SAPO.JS ● O que é ● Vantagens ● Estrutura ● Exemplos ●
    3. JavaScript ”The World's Most Misunderstood Programming Language” By...
    4. JavaScript The World's Most Misunderstood Programming Language By: Douglas Crockford http://www.crockford.com/
    5. JavaScript The World's Most Misunderstood Programming Language Não é um ”brinquedo” para a web...
    6. JavaScript The World's Most Misunderstood Programming Language Não é um ”brinquedo” para a web... É uma linguagem de programação ● Pequena mas sofisticada ● Não tem ”class-oriented inheritance”, mas ● tem ”prototype-oriented inheritance” Objects as self containers ● Não se chama AJAX. ●
    7. JavaScript The World's Most Misunderstood Programming Language Permite criar aplicações completas
    8. JavaScript The World's Most Misunderstood Programming Language Um bom manual de JavaScript
    9. JavaScript.AJAX AJAX
    10. JavaScript.AJAX Não é esconder e mostrar divs com JavaScript
    11. JavaScript.AJAX Asynchronous JavaScript and XML Criar aplicações web sem ser ● necessário fazer reload ao browser É assíncrono ● Usa o objecto XMLHttpRequest ● Recebe o conteúdo formatado em XML* ● É host restricted ●
    12. JavaScript.AJAX Exemplo dum AJAX request
    13. JavaScript.AJAX Exemplo dum AJAX request <!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\"> <html> <head> <title>AJAX Request</title> <script type=\"text/javascript\" src=\"http://js.sapo.pt/Prototype/\"></script> <script type=\"text/javascript\"> function myRequest() { var url = document.getElementById('url').value; new Ajax.Request(url, { method:'get', onSuccess: function(req){ var xml = req.responseXML; var aItems = xml.retElementsByTagName('item'); var totalItems = aItems.length; document.getElementById('output').innerHTML = totalItems; }, onException: function(r, e){ throw e; } }); } </script> </head> <body> <input type=\"text\" id=\"url\" size=\"40\" value=\"\" /> <input type=\"button\" name=\"b\" value=\"Request It\" onclick=\"myRequest();\" /> <hr /> <div><span id=\"output\"></span> items no XML</div> </body> </html>
    14. JavaScript.AJAX AJAX request – host restriction
    15. JavaScript.AJAX AJAX request – host restriction
    16. JavaScript.AJAX AJAX request – host restriction SOLUÇÕES Apache Proxy RewriteEngine On RewriteRule ^/req.xml http://videos.sapo.pt/gamboa/rss [P] Request -> http://localhost/req.xml
    17. JavaScript.AJAX AJAX request – host restriction SOLUÇÕES PHP Proxy cat req.php <?php $content = file_get_contents('http://videos.sapo.pt/gamboa/rss'); header(”Content-type: text/xml”); echo $content; ?> Request -> http://localhost/req.php
    18. JavaScript.JSON JSON
    19. JavaScript.JSON JavaScript Object Notation (”jeison/jotason/jota esse on/...”) Formato duma estrutura de dados/ ● array associativo (JS Object) É text-based ● RFC 4627 ● Content type: application/json ● Pode encapsular funções (Class) ●
    20. JavaScript.JSON { \"nome\": \"Claudio Gamboa\", String ● \"idade\": 26, \"solteiro\": true, Number \"gosta\": { ● \"musica\": [\"Emperor\", \"Moonspell\", \"Borknagar\"], Boolean \"cinema\": [\"LOTR\", \"Matrix\", \"Se7en\", \"Snatch\"], ● \"series\": [\"House MD\", \"Seinfeld\"], \"livros\": [\"Perfume\", ”Aparição”] Object ● }, \"filhos\": null Array } ● null ●
    21. JavaScript.JSON JSON como resposta dum AJAX Request function callBack(obj) { var req = obj.responseText; var myObj = eval('(' + req + ')'); alert(myObj.nome); }
    22. JavaScript.JSON JSON como Classe
    23. JavaScript['Script'].Tag(Hack) SCRIPT TAG HACK
    24. JavaScript['Script'].Tag(Hack) O que é: Adicionar dinamicamente uma SCRIPT ● tag na página (ficheiro js/json) Esperar que seja carregado ● Usar/Executar o conteúdo. ●
    25. JavaScript['Script'].Tag(Hack) O que é: <script type=”text/javascript” src=”http://services.sapo.pt/Photos/JSON/gamboa?jsonTag=foo”> </script>”> // RSS em formato JSON var foo = {”rss”:{”channel”: ....}} alert(foo.rss.channel.item[0].title);
    26. Vamos mudar de assunto ...
    27. Lib.SAPO.JS O que é ● Vantagens ● Estrutura ●
    28. Lib.SAPO.JS('O que é?') Repositório central de libs de ● JavaScript e widgets do SAPO É Open Source ● Tem classes utilitárias para ● simplificar o JavaScript e a vida dos programadores (SAPO.Utility.*)
    29. Lib.SAPO.JS('Vantagens') Ter classes de JavaScript ● centralizadas (http://js.sapo.pt) Ter Widgets baseados nas classes ● Ter controlo de versões ● Ter o código organizado/separado ● Reutilizar código ● Não ter de reinventar a roda cada vez que ● se quer validar um endereço de email Farm estática e conteúdo ● ”jslinted”, ”jsmined” e ”gziped”
    30. Lib.SAPO.JS('Vantagens') Criar ”packages” estáticos ● (Bundles) de vários ficheiros JavaScript e servir apenas um ficheiro para a aplicação. Torna o load da aplicação mais rapido ● Não corre o risco de ”partir” por um ● ficheiro não ter sido carregado Garante que todo o código necessário ● existe http://js.sapo.pt/Bundles/WebmessengerCliente.js 645 Kb -> 322 Kb -> 75 Kb
    31. Lib.SAPO.JS('Vantagens') Criar ”scripts” (Snippets) em que ● as opções são passadas na query string. Disponibilizar apenas um ficheiro para ser ● reutilizado incluindo apenas uma script tag. Dar a possibilidade de o utilizador ● alterar as opções alterando apenas os parametros da query string. Lisbon Weather http://js.sapo.pt/Snippets/Meteo.js?c=LPLG
    32. Lib.SAPO.JS('Estrutura') /SAPO/ ● /Prototype/ ● /YUI/ ● /Bundles/ ● /Snippets/ ● http://js.sapo.pt/(.*)
    33. Lib.SAPO.JS('Estrutura') Prototype (Versão 1.8) ● Dragdrop – Effects – Builder – Controls – Slider – http://js.sapo.pt/Prototype/ http://js.sapo.pt/Prototype/Dragdrop/ http://js.sapo.pt/Prototype/..../
    34. Lib.SAPO.JS('Estrutura') YUI (Versão 2.2) ● Dom – Event – Connection – Dragdrop – Calendar – ... – http://js.sapo.pt/YUI/ http://js.sapo.pt/YUI/Dom/ http://js.sapo.pt/YUI/.../
    35. Lib.SAPO.JS('Estrutura') SAPO ● Utility – Communication – Widget – Geo – Exception –
    36. Lib.SAPO.JS('Estrutura') SAPO.Utility ● Array (inArray, keyValue) ● Cookie (set, remove, get) ● Crypto (md5, sha1, sha256) ● Dumper (alertDump, returnDump, windowDump) ● CSS (set) ● String (trim, stripTags, htmlEntities(En|De)code, utf8(En|De)code ● ...) Url (getURl, getQueryString, base64(En|De)code ...) ● Validator (mail, isPortuguesePhone) ● Variable (isArray, isObject, isString, isNumber) ● http://js.sapo.pt/SAPO/Utility/(.*)
    37. Lib.SAPO.JS('Estrutura') SAPO.Communication ● Syndication (push, – run, runAll) (Class para a ”Script Tag Hack”) http://js.sapo.pt/SAPO/Communication/Syndication/ http://js.sapo.pt/SAPO/Communication/Syndication/sample/
    38. Lib.SAPO.JS('Estrutura') SAPO.Widget ● Contextmenu ● Dialog ● Tooltip ● Rating ● Maps ● Thumbs ● (Blogthis, Meteo, Photos, Search, Tags...) ● http://js.sapo.pt/SAPO/Widget/(.*) http://js.sapo.pt/SAPO/Widget/([^\\/]+)/sample/
    39. Lib.SAPO.JS('Estrutura') SAPO.Geo ● Map ● Ver apresentação de Joaquim Muchaxo e António Cruz no PP às 11:45 ”SAPO Mapas & GIS” http://js.sapo.pt/SAPO/Geo/Map/
    40. Exemplos SAPO.Utility.Dumper ● SAPO.Utility.String ● SAPO.Utility.Url ● SAPO.Widget.Contextmenu ● SAPO.Widget.Tooltip ● SAPO.Communication.Syndication ● Prototype Ajax.Request ●
    41. Perguntas?? ...
    42. Mais informação http://js.sapo.pt/ ● http://developer.sapo.pt/ ● http://prototypejs.org ● http://developer.yahoo.com/yui/ ● SAPO: http://www.sapo.pt/ ● Download: http://pdvel.com/ ● Meu blog: http://blog.pdvel.com/ (sucks) ●

    + codebitscodebits, 3 years ago

    custom

    2711 views, 0 favs, 4 embeds more stats

    Noções de Javascript e aplicações práticas.
    Li more

    More info about this document

    © All Rights Reserved

    Go to text version

    • Total Views 2711
      • 2647 on SlideShare
      • 64 from embeds
    • Comments 0
    • Favorites 0
    • Downloads 29
    Most viewed embeds
    • 60 views on http://intra.codebits.sapo.pt
    • 2 views on http://codebits.eu
    • 1 views on http://mail.blogs.sapo.pt
    • 1 views on http://www.slideshare.net

    more

    All embeds
    • 60 views on http://intra.codebits.sapo.pt
    • 2 views on http://codebits.eu
    • 1 views on http://mail.blogs.sapo.pt
    • 1 views on http://www.slideshare.net

    less

    Flagged as inappropriate Flag as inappropriate
    Flag as inappropriate

    Select your reason for flagging this presentation as inappropriate. If needed, use the feedback form to let us know more details.

    Cancel
    File a copyright complaint
    Having problems? Go to our helpdesk?

    Categories

    Groups / Events