Blog: Javascript

JSPerf.com: Teste a performance de seu Javascript

Tem vez que a gente fica em dúvida se tal código é mais eficiente que outro (principalmente em linguagens interpretadas ).

Pensando nisso, um pessoal resolveu criar um site que testa código Javascript, chamado jsperf.com.
Muito bom! Dá para saber online, se um código é mais eficiente que outro em um determinado navegador (lembrando que os navegadores usam diferentes interpretadores javascript e cada um pode ter uma performance diferente da outra).
E o legal é que guarda os históricos dos testes feitos. 🙂
Para mais informações, entre no site http://jsperf.com/.
Se quiser ver os testes criados, vá em http://jsperf.com/browse

Programação Java é aqui. Acesse as o blog para ficar atualizado sobre o mundo da **Linguagem Java. Dicas, informações e muitos truques para se usar no dia-a-da do **programador java.

Rhino: Rodando Javascript em Java

Rhino é um framework para a linguagem Java que permite executar scripts em Javascript. Ele foi feito pelo “mesmo” pessoal da Mozilla Foundation.
O mais legal é que dá para criar um console javascript em prompt de comando (coisa de nerd, eu sei 🙂 ).
Muito bom para quem gosta de Javascript e quer fazer aplicações em Shell/Terminal/Console/Prompt. 😛

Para mais informações, acesse o site:
http://www.mozilla.org/rhino/doc.html

Obs.: A ferramenta de teste Selenium usou ele para executar Javascript em sua versão RC.

Programação Java é aqui. Acesse as o blog para ficar atualizado sobre o mundo da **Linguagem Java. Dicas, informações e muitos truques para se usar no dia-a-da do **programador java.

Que diabos são as operações &#8220;<<" e ">>&#8221; no Javascript

São operadores de bit a bit. 🙂

Hum Melhor ir as explicações:

– O operador “
var inteiro = 1; //(64 bits) -> 00000001 (1)
alert("Número original: ” + inteiro);
inteiro = inteiro 64 bits) -> 00000010 (2)
alert(“Número deslocado uma casa para a esquerda: ” + inteiro);

– E o operador “>>” descola o valor bit a bit de uma variável, da esquerda para direita. Exemplo:

var inteiro = 4; //(64 bits) -> 00000100 (4)
alert(“Número original: ” + inteiro);
inteiro = inteiro >> 2; //descola duas “casas” para a direita (64 bits) -> 00000001 (1)
alert(“Número deslocado duas casas para a direita: ” + inteiro);

Se formos pensar bem, estes operadores “multiplicam” (“>”) o número por dois. Isso acontece por causa que os computadores trabalham com números binários (“bi” igual a “dois”, entendeu? 😛 )

Programação Java é aqui. Acesse as o blog para ficar atualizado sobre o mundo da **Linguagem Java. Dicas, informações e muitos truques para se usar no dia-a-da do **programador java.

Comando delete em Javascript

Sabia que existe um comando que desaloca da memória uma variável em Javascript?
Pois, ele existe e é bem parecido com o de C++.
Ele se chama “delete”! 🙂

Meio estranho desalocar memória em Javascript Acho, mas não tenho certeza, que ele já faz isso por que é uma linguagem interpretada
Em todo caso, nāo faz mal usá-la 😛
E percebi que nem todo navegador funciona 😛
Mais informações no site do MDN:
https://developer.mozilla.org/en/JavaScript/Reference/Operators/delete

É isso aí!

Programação Java é aqui. Acesse as o blog para ficar atualizado sobre o mundo da **Linguagem Java. Dicas, informações e muitos truques para se usar no dia-a-da do **programador java.

CocoonJS Alta Performance em Canvas no Mobile

Qual web-developer não ficou furioso quando, ao trabalhar com canvas, fez aquela animação animal que roda “liso” em todos os navegadores de PC, porém, em dispositivos mobile, roda a 5 fps (frames por segundo)?

“P*ta que p*rui!” – reclamaria.

Pois é, pensando em nós, a Ludei criou o CocoonJS!

O CocoonJS é uma ferramenta de desenvolvimento mobile para criação de jogos e apps para quem trabalha com HTML 5 e JS, focado na performance destes.

Pelos exemplos do vídeo acima, parece que o resultado é muito bom! 🙂
Que conhecer e testar a ferramenta? Então entre no site:

Programação Java é aqui. Acesse as o blog para ficar atualizado sobre o mundo da **Linguagem Java. Dicas, informações e muitos truques para se usar no dia-a-da do **programador java.

Como ordenar um Array em Javascript

Desculpem por este tempo fora, acho que a preguiça me pegou uns tempos para cá
Vou tentar voltar a minha “programação normal”. 😛
Existem várias soluções na mão para ordenar uma lista: bubble sort, quick sort, table sort, gambiarra sort 😛 
Mas muita gente não sabe que existe um “facilitador” para isso em Javascript, um método chamado sort na própria “classe” Array:
var frutas = [“Limão”, “Laranja”, “Goiaba”, “Abacaxi”];
frutas.sort();
document.write(frutas);
Legal, não?
E ainda você pode implementar seu método de comparação, igual a Java:
//Numeros em ordem decrescente
var numeros = [1, 2, 3, 4];
numeros.sort(function (a, b) {
     if (a > b) {
          return -1;
     } else if (a

          return 1;
     }
     return 0;
});
document.write(numeros);
Acho que isso vai facilitar a vida de muita gente (a minha, com certeza!). 🙂

Programação Java é aqui. Acesse as o blog para ficar atualizado sobre o mundo da **Linguagem Java. Dicas, informações e muitos truques para se usar no dia-a-da do **programador java.

Posso Retornar uma Função ou Receber esta como Paramêtro em Javascript

Resposta: Sim! 🙂

Agora, só para não ficar só nisso, vamos ao exemplo:

//Declaração de função
function receberRetornarFuncao(func) {
        //Executa a função recebida como paramêtro
        func();
        //Retorna uma função
        return function() {
                alert(‘Retorno’);
        };
}

//Variável recebe função retornada (executa a função receberRetornarFuncao)
var funcRet = receberRetornarFuncao(function() {
       alert(‘Paramêtro’);
});
//Executa a função retornada
funcRet();

Obs.: Quando você faz “function nomeDaFuncao() {}” ou “var nomeDaFuncao = function() {}”, você declara esta e mas não executa. Estes só executam quando é feita a chamada “nomeDaFuncao();”.

Programação Java é aqui. Acesse as o blog para ficar atualizado sobre o mundo da **Linguagem Java. Dicas, informações e muitos truques para se usar no dia-a-da do **programador java.

Construindo jogos Atari com CreateJS

Dica de um colega meu.

Muito se fala em HTML5, principalmente em Canvas, para criação de jogos.

E pensando nisso, a Atari (sim, aquela empresa que criou o primeiro video-game que todo mundo queria em 1984, e que custava os olhos da cara para a maioria dos brasileiros – inclusive para mim ) criou um tutorial de boas práticas para desenvolvimento de jogos com o framework CreateJS (em inglês):
http://www.atari.com/arcade/developers/building-atari-createjs

Muito legal! Este artigo explica muito bem várias coisas e dá muito exemplos. 🙂

Valeu Giuliano!

Programação Java é aqui. Acesse as o blog para ficar atualizado sobre o mundo da **Linguagem Java. Dicas, informações e muitos truques para se usar no dia-a-da do **programador java.

Leak Finder Javascript

Sabia que o Javascript dá vazamento de memória?
Pois é, eu não sabia até agora (e nem me preocupava com isso ) 😛

Mas, um colega meu passou um link de um artigo que fala sobre isso e uma nova ferramenta para descobrir este tipo de problema:
http://google-opensource.blogspot.com.br/2012/08/leak-finder-new-tool-for-javascript.html

Muito legal! Principalmente para quem faz ou esta fazendo sites para dispositivos móveis (onde o recurso de memória é um pouco mais escasso ).

Valeu pela dica, Morilha!

Programação Java é aqui. Acesse as o blog para ficar atualizado sobre o mundo da **Linguagem Java. Dicas, informações e muitos truques para se usar no dia-a-da do **programador java.

Dicas para programação de sites mobile

Aqui vão as minhas dicas para quem esta iniciando neste maravilhoso e complicado mundo de site mobile:
– É possível implementar aplicações responsivas (onde a página se ajusta, através de folhas de estilos, conforme o tamanho da tela/navegador), porém é um pouco difícil de se fazer, se as telas de desktop e de mobile forem muito diferentes (Quer mais informações? Entre no site da wikipédia: http://pt.wikipedia.org/wiki/Web_Design_Responsivo).
– Evitem usar muitas imagens “pesadas” para web-mobile, para que o usuário não sinta uma “lentidão” no sistema.

– Efeitos visuais não são recomendáveis, pois alguns aparelhos de baixo processamento não suportam muito bem isso (travam, ficam lentos, etc.).

– Evitem usar tamanhos fixos no estilo e nos elementos, tentem usar o máximo possível de porcentagem ou “em”.

– Se sua aplicação checar se o navegador é mobile via User-Agent (cabeçalho da página web onde pode-se identificar o navegador e sistema operacional que requisitou esta), vocês podem emular isso via plugins, como este:
 – Se necessário, não esqueçam da meta tag viewport:
– Se vocês não tiverem dispositivos para seus testes, pode-se emular alguns destes via web, através do site:
 http://www.mobilephoneemulator.com/ (Não é 100% confiável, mas é alguma coisa).
     
Obs.: Recomendação para esta ferramenta: para melhor emulação, abram esta url no Google Chrome (para testes no Android) e/ou no Safari (para testes no iPhone).
– Em testes finais, sempre usem dispositivos reais.
– Se for necessário implementar algum efeito visual, testem no pior dispositivo possível (com o menor processamento, tela pequena e pouca memória).

– Sei que isso vale mais para desenvolvimento nativo, mas sempre deem uma olhada nos guidelines disponíveis para Android (http://developer.android.com/design/index.html) e para iOS (https://developer.apple.com/library/ios/documentation/UserExperience/Conceptual/MobileHIG/Introduction/Introduction.html), pois estes dão dicas legais para quem esta começando. 🙂

<div>
  Espero que isso ajude alguém </p> 

  <p>

  </p>
</div>

<p>
  <strong>Programação Java</a> é aqui. Acesse as o <a href="http://java.jar.io/blog">blog</a> para ficar atualizado sobre o mundo da <strong>Linguagem Java</strong>. Dicas, informações e muitos truques para se usar no dia-a-da do <strong>programador java</a>. </p>

Upload de arquivo com DWR

DWR é um framework Java que simula chamadas de métodos Java em Javascript.

Legal, não? 🙂

Aqui, vou mostrar um exemplo de upload de uma imagem

Primeiro, a gente cria a classe que vai fazer o upload:

package com.blogspot.blogdotakemura.test;

import java.awt.image.BufferedImage;
import java.io.File;
import javax.imageio.ImageIO;

public class UploadFile {

public String uploadImage(BufferedImage image) {
try {
File file = new File(“teste.png”);
ImageIO.write(image, “png”, file);
return file.toURI().toString();
} catch (Exception e) {
e.printStackTrace();
return “”;
}
}

}

Depois, crio o arquivo dwr.xml em WEB-INF e adiciono as seguintes linhas:




Agora, é só criar a página JSP:

Upload test

Se tudo der certo, agora você pode fazer upload de imagens com javascript!!!!

Uau! 😛

Obs.: Para que isso funcione, é preciso configurar o dwr corretamente na aplicação web.

Programação Java é aqui. Acesse as o blog para ficar atualizado sobre o mundo da **Linguagem Java. Dicas, informações e muitos truques para se usar no dia-a-da do **programador java.

JQuery Framework para Javascript

Acho que este framework, todo programador conhece, mas não custa falar dele 😛

O JQuery é uma biblioteca de javascript que facilita (e muito) em colocar “efeitos” nas páginas HTML. O legal, é que esta biblioteca é compatível com a maioria dos “grandes” navegadores (entende-se MS-Internet Explorer, Mozilla Firefox, Google Chrome e Apple Safari :P), ou seja, não é necessário fazer os “grandes ifs” para detecção da versão do navegador.

Colocando em poucas palavras: Este framework é muito bom!

Para mais informações, entre no site do produto:
http://jquery.com/

Até mais!

Programação Java é aqui. Acesse as o blog para ficar atualizado sobre o mundo da **Linguagem Java. Dicas, informações e muitos truques para se usar no dia-a-da do **programador java.

Exibindo/Escondendo uma DIV em Javascript

Poxa, desculpa pessoal, mas andei meio ocupado aqui no trabalho (normal, eu acho 😛 ).

Como estou meio sem assunto, vou postar um dica bem simples de Javascript. 🙂
Visivel
Existem duas maneiras de exibir/esconder uma div:
– A primeira é usar a propriedade “visibility” do style de um elemento:
//Torna a div invisível
document.getElementById(“teste”).style.visibility = “hidden”;
//Torna a div visível
document.getElementById(“teste”).style.visibility = “visible”;
– A segunda é usar a propriedade “display” da mesma:
//Torna a div invisível
document.getElementById(“teste”).style.display = “none”;
//Torna a div visível
document.getElementById(“teste”).style.display = “block”;
Agora você deve perguntar: qual é a diferença entre os dois?
A propriedade “visibility” só deixa o elemento visível ou invisível, mas deixa o espaço que ele ocupa na tela.
A propriedade “display” faz com que o elemento desapareça, retirando-o inclusive (ou seja, o espaço que ocupa também “desaparece”).
É isso aí, estou realmente sem assunto  
Até mais!

Programação Java é aqui. Acesse as o blog para ficar atualizado sobre o mundo da **Linguagem Java. Dicas, informações e muitos truques para se usar no dia-a-da do **programador java.

Script dentro de script em Javascript :P

Algumas vezes, por mais que se queria, não é possível executar um script dentro de um script usando o elemento.innerHTML ou document.write:

document.write(“”);

Isso não executará por motivos de segurança na maioria dos navegadores

Mas existe uma alternativa (para não falar em “gambiarra” ) para que alguns navegadores considerem a instrução: basta separar a palavra “script”.

Não entendeu? Pois é bem simples. 🙂

document.write(“alert(‘teste’);” + “ipt>”);

Isso sim que é um jeitinho alternativo 😀

Programação Java é aqui. Acesse as o blog para ficar atualizado sobre o mundo da **Linguagem Java. Dicas, informações e muitos truques para se usar no dia-a-da do **programador java.

Try Catch em Javascript

Sabia que dá para capturar exceções em Javacript?
Pois é, dá e pode ser usada “igualzinha” como Java (até a sintaxe é parecida):

Só não sei se existe “Stack Trace” para esta linguagem 😛

Já pensou que legal jogar um “RuntimeException” no navegador do usuário (nem que for de “mentirinha” :P)?

Tsc, tsc que desenvolvedor “malvado”!

Programação Java é aqui. Acesse as o blog para ficar atualizado sobre o mundo da **Linguagem Java. Dicas, informações e muitos truques para se usar no dia-a-da do **programador java.