Tag Archives: JavaScript

CearaJS – First commit… Lightning Talks!

Criamos uma comunidade local com o propósito principal de unir todas as outras comunidades para discutirmos javascript, já que é uma linguagem presente para todos que desenvolvem na WEB, mesmo que seu Framework tente esconder de você.

Realizamos o primeiro encontro com chamada para Lightning Talks e pretendemos manter esse formato, dá mais agilidade e podemos ter mais pessoas apresentando o que estão fazendo.

Tivemos o Coffee Break da TriadWorks e brindes da Opera distribuídos para as pessoas que interagiam e faziam perguntas pertinentes. Os brindes da Opera eram bolinhas de Soccer com o logo.

Abaixo alguns materiais, vou atualizar com o restante conforme os palestrantes subam:

Testo meu jQuery sem navegador!

Aplicações 100% JavaScript com CouchApp e SammyJS

Não gosto de Spaghetti. E você?
https://github.com/hvitorino/CearaJs-Pub-Sub

Fotos

Quem tiver mais fotos, manda pra gente.

Eval is Evil 3

Continuando nossa saga de evitar Eval e conhecer melhor o Javascript, vou brincar com a seguinte situação: parsear um template html escrito com Expression Language da spec JSP.

Imagina o seguinte trecho abaixo:

<c:if test="${sessionScope.cart.numberOfItems > 0}">
  ...
</c:if>

É fácil montarmos um mapa com todas as expressões encontradas entre ${ e } e depois chamar eval para processar, mas como quero evitar essa chamada, o que podemos fazer?

Encontramos na documentação de referência da Mozilla a resposta, especificamente no objeto nativo Function, onde podemos criar uma new Function passando seu corpo como uma string que será executada ao fazer a chamada dessa function. Montei abaixo um exemplo como funciona:

var sessionScope = {
cart: {
numberOfItems: 10
}
}
var el = "${sessionScope.cart.numberOfItems > 0}".replace("${", "").replace("}", "");
var statement = "return " + el;
var parser = new Function(statement);
console.log(parser());

Caso não veja no seu Feedreader, link do github.

Compatibilidade dos navegadores com especificação javascript ECMA 262

Fiz um teste nesse momento em 4 navegadores que utilizo no dia-a-dia usando o projeto Sputnik do GoogleLabs para saber a aderencia à especificação ECMA 262. Fiz um teste sem compromisso e sem rigor acadêmico, apenas por curiosidade.

Esse teste é interessante para sabermos que possíveis problemas irão acontecer por diferença de implementação do Javascript por cada engine.

Firefox

Total: 5246
Succeeded: 4982
Failed: 264

Versão 3.6.16

Opera

Total: 5246
Succeeded: 5172
Failed: 74

Versão 11.01 – Build 1190

Chrome

Total: 5246
Succeeded: 5110
Failed: 136

Versão 11.0.696.57

Safari

Total: 5246
Succeeded: 5083
Failed: 163

Versão 5.0.5 (6533.21.1)

Voltei…

O interessante é observar que o Opera é o mais aderente, o Firefox o mais lento [travou], o Chrome o mais rápido. Para não ser injusto com o Firefox, eu ainda matei o processo, abre uma instância novinha e mesmo assim ele travou na execução, abriu aquela janelinha marota pedindo para encerrar o script.

Sequencia no sentido horário: Opera, Firefox, Safari e Chrome.

A velocidade e economia do Chrome é realmente impressionante, observe os processos:

Sequencia no sentido horário: Opera, Firefox, Safari e Chrome.

Dados da minha máquina:

[update]

Como eu sei que alguém vai me acusar de parcial, etc e tal, eu resolvi abrir uma VM aqui com XP e IE8 para não dizerem que não falei de flores … olha só:

Ok, é má vontade… Sério?

Uns 10 minutos depois e sem voltar [continua travado], já basta esses dados para mostrar que o IE8 é uma bo$ta em relação a aderência [imagina o 6]: