Experimente digitar isso em uma barra de endereços e dê enter:


javascript:document.body.contentEditable='true'; document.designMode='on'; void 0;

E veja o que acontece, tente mover uma imagem de lugar, modificar o texto, etc.

Tenta isso tambem:

javascript:R=0; x1=.1; y1=.05; x2=.25; y2=.24; x3=1.6; y3=.24; x4=300; y4=200; x5=300; y5=200; DI=document.getElementsByTagName('img'); DIL=DI.length; function A(){for(i=0; i-DIL; i++){DIS=DI[ i ].style; DIS.position='absolute'; DIS.left=(Math.sin(R*x1+i*x2+x3)*x4+x5)+'px'; DIS.top=(Math.cos(R*y1+i*y2+y3)*y4+y5)+'px'}R++}setInterval( 'A()',5); void(0);

Fui selecionado para ministrar uma palestra no próximo "Café com Tapioca", evento realizado pelo CEJUG (Grupo de Discussões Java do Ceará) .

O anúncio foi divulgado nesse endereço do CEJUG, portanto voce tem mais informações sobre o evento. A palestra será sobre Ajax e como implementar um modelo MVC nessa tecnologia.

Voces estão todos convocados para irem na Fortes no dia 12, não aceitarei a ausência em hipótese alguma.

Semana passada postei um desafio em javascript para testar o conhecimento teórico dos meus amigos, somente o Coutinho respondeu:

ou mais bonitinho:

E acertou. Consertou o problema que propositadamente fabriquei e deu uma solução que é a mais simples e portanto a melhor: usar um objeto literal.

Vejamos:

Objetos literais são a definição de objetos na especificação ECMA-262, a especificação do JAVASCRIPT.

"An object is a member of the type Object. It is an unordered collection of properties each of which contains a primitive value, object, or function. A function stored in a property of an object is called a method."

Ela define que um objeto é uma coleção não-ordenada de propriedades onde cada propriedade contém um valor primitivo, um outro objeto ou uma function e uma function armazenada em uma propriedade dessa coleção é denominada de método. Segundo a especificação as propriedades (properties) são campos (Fields) que representam o estado e métodos (methods) que representam o comportamento.

Então a estrutura primordial de um objeto, também chamado de objeto literal é da forma que ele respondeu, que seria assim:

Outra forma muito usual pela NEW SCHOOL é instanciar uma function (lembrando que toda Function é um objeto) utilizando o paradigma de construtor com parêntesis após a construção, e utilizar a KEYWORD return para exportar o contexto e isolar o conteúdo interno de códigos maliciosos, já que os métodos apply e call não funcionam nesse tipo de estrutura, criando variáveis privadas (já que só existe o escopo público na ECMAScript).

Portanto se você tentar usar a estrutura abaixo, vai falhar porque o objeto "obj" não é uma função, já que foi transformado em objeto literal artificialmente:

Nessa briga dos BIGPLAYERS pelo mercado de RIA um dos aspectos que mais se destacam não é a tentativa de reativar velhas idéias ou tecnologias, porque na informática os conceitos vem e vão, mas sim em algo que passa despercebido em todas as análises que leio: "Todos usam a ECMAScript". O foco sempre é direcionado à questão de que são linguagens de marcação, mas esquecem que mesmo sendo uma linguagem de marcação, todas utilizam como DSL para extender sua plataforma uma ENGINE baseada no ECMAScript.

Desde o Adobe Flex, passando pelo Laszlo, Microsoft Silverlight até à nova arma da SUN, o JavaFX, todos usam um dialeto da ECMAScript.

O poder do javascript já é reconhecido de longa data, desde STANDALONES ENGINES como Rhino (Mozilla) ou Embedded JavaScript (usado no servidor Samba 4) até o kernel do Acrobat Reader, todos os benefícios de uma linguagem dinâmica são explorados com um SUBSET da ECMAScript. A Adobe praticamente tem um porte no núcleo de todos os seus produtos para suportarem a extensão com javascript, desde o citado Acrobat, passando pelo Flash ao novíssimo Flex usando como base o ActionScript.

Sources Javascript

A SUN utilizou a linguagem F3 (Javascript + XML) no JavaFX, a Adobe vai de ActionScript, a Microsoft com seu XAML implementa usando o JScript.NET e o Laszlo usa a linguagem LZX que tem seu próprio motor, vejamos códigos entre os 4 produtos principais que se destacam nessa luta:

Silverlight:

Laszlo:

… 

Flex:

JavaFX:

Como podem ver, apesar da diferença visual entre os códigos, eles conservam a essência da ECMAScript e possivelmente haverá uma tendência natural para que surjam idéias de integração entre as ferramentas.

Velhos problemas

Mudando um pouco de assunto nesse tema, essa nova tendência resgata velhos e incômodos problemas, que cada tecnologia é mundo fechado e a interoperabilidade é novamente descartada, a idéia de RIA não é nova, tivemos tecnologias interessantes como o XUL e até especificação com o XForms (que tentava ordenar uma forma de interface dinâmica na própria linha do XHTML) e não vingaram.

Hoje nós temos especificações organizadas pelo W3C que tentam orquestrar um ponto em comum entre as diversas plataformas no ambiente WEB. Sofremos por falta de uma estrutura dinâmica que torne a acessibilidade WEB semelhante ao ambiente DESKTOP. O RIA segue um segmento de que cada fornecedor tem suas próprias especificações, mesmo usando tecnologias semelhantes, cada uma tem seu modelo final.

A indústria sempre vai brigar pelo MARKET SHARE e um dos pontos que influencia suas receitas é a inovação que invariavelmente passa pelas tecnologias emergentes e os HYPES. Quantos produtos voces conhecem que não executam nada superior aos seus concorrentes mas que tem um plano de Marketing mais elaborado e uma visibilidade melhor?

Na minha opinião, a fragilidade desse tipo de tecnologia está justamente no ponto da interoperabilidade. Vamos e voltamos nesse mesmo ponto até que se chegue em especificações que agradem a todos.

Como eu mencionei o fato de que são linguagens de marcação e cada fornecedor tem seu próprio conjunto de tags, a interoperabilidade pode ser alcançada pelo dialeto comum que eles utilizam, no caso a ECMAScript. O caminho para essas tecnologias não morrerem, vai ser um jeito de fazer com que essas ferramentas conversem entre si, e na minha opinião a única forma seria pelo javascript.

Material de apresentação das palestras no FLISOL 2007.

Evolução dos frameworks web: retorno ao MVC original!

Orientação a objetos com Javascript 

 

« Previous PageNext Page »