Category Archives: JavaScript

Material minicurso Ajax Avançado – SECOMP – FLF

Material da primeira aula do minicurso você baixa aqui nesses links:

Slides

War do projeto de exemplo, para deploy no MyEclipse ou WTP. Usei o MyEclipse 5.5 na aula mas indico o 6 porque já vem com tomcat6 integrado, além do JDK6 (caso instalado pelo “.exe”).

Typically chemist’s shop can sale to you with discreet treatments for various heartiness problems. There are numerous of safe online pharmacies that will deliver medications to your address. There are divers medicines for each afflictions. Learn more about “viagra manufacturer coupon“. Maybe “viagra discount coupons” is a very much complicated question. Matters, like “coupons for viagra“, are connected numerous types of health problems. If you need to take recipe medications, ask your dispenser to check your testosterone levels before. Sometimes the treatment options may switch on erectile dysfunction remedies or a suction device that helps get an hard-on. Keep in mind web-site which is ready to sell erectile disfunction drugs like Viagra without a prescription is fraudulent. When you purchase from an unknown web-site, you run the risk of getting counterfeit remedies.

Eval is Evil

Uma das formas de trocar informações entre as camadas físicas cliente e servidor, é através da serialização de objetos, talves a forma mais simples, usando o formato JSON. Frameworks como DWR utilizam esse conceito.

Uma das formas de processar esses objetos serializados na forma de texto é usando a função “eval”. Definida na especificação ECMA262, página 77 (15.1.2.1), o Eval é uma função que interpreta um porção de código baseado em texto comum, falando a grosso modo.

objetoServidor = "{'id':'1','name':'milfont'}";

var objetodesserialiazado = eval("(" + objetoServidor + ")");

alert(objetodesserialiazado .name); // resposta: "milfont"

Uma das formas de evitar o uso do “Eval”, já que ele é considerado nocivo por permitir a injeção de código malicioso, é usar o conceito de “Quine”. O quine é um conceito que representa um programa, uma forma de metaprograma, que gera seu próprio código fonte, em outras palavras, como ele manipula sua própria estrutura de código fonte, podemos alterar dinamicamente sua estrutura, dessa forma podemos montar um objeto em tempo de execução. Programas que apenas recebem código fonte como entrada não são considerados quine.

// objeto serializado no servidor

objetoServidor = "{'id':'1','name':'milfont'}";

// separa um array das propriedades

var source = objetoServidor.split(",");

// cria um objeto base para desserializar

var objeto = new Object;

// percorre o array

for(var t = 0; t < source.length; t++){ //filtra as propriedades

 var temp = source[t].replace(/'/g,"")

              .replace("{","").replace("}","");

//monta o objeto base com os pares chave,valor do array

 objeto[temp.split(":",1)]  = temp.split(":",2)[1];

}

alert(objeto.name); //resposta: "milfont"

No site Json.org você encontra um parser json que filtra códigos maliciosos e é usado por grande parte dos frameworks que necessitam desse tipo de código.

A estratégia mais eficiente, usada pelos grandes players do mercado, é dispor uma api que devolva um json, passando para uma função de callback e deixando o próprio browser resolver a interpretação, exemplo retirado da área do yahoo destinado ao json:


function ws_results(obj) {

alert(obj.ResultSet.totalResultsAvailable);

}


Observe que o a API do Yahoo! devolve um objeto JSON passado para a assinatura da function que eu criei e informei na própria url do recurso, quando o javascript é processado pelo Browser, ele se encarrega de executar a função de callback e interpretar o JSON recebido.

Typically chemist’s shop can sale to you with discreet treatments for various health problems. There are numerous of safe online pharmacies that will deliver medications to your address. There are divers medicines for each afflictions. Learn more about “viagra manufacturer coupon“. Maybe “viagra discount coupons” is a very much complicated problem. Matters, like “coupons for viagra“, are connected numerous types of soundness problems. If you need to take prescription medications, ask your dispenser to check your testosterone levels before. Sometimes the treatment options may turn on erectile dysfunction remedies or a suction device that helps get an hard-on. Keep in mind web-site which is ready to sell erectile malfunction drugs like Viagra without a prescription is fraudulent. When you purchase from an unknown web-site, you run the risk of getting counterfeit remedies.

Early vs Late binding

Nas linguagens de programação o conceito de “Name Binding” é uma abstração que está relacionado a associação de valores com seus identificadores. Um identificador garante ao valor o que é referenciado a esse valor.

Em linguagens fortemente tipadas o binding é estático (“Early Binding”) e suas propriedades são definidas em tempo de compilação e/ou interpretação garantindo a montagem do código de máquina. Isso garante de antemão a inexistência de erros de atribuição e oferece ao ambiente de desenvolvimento um melhor suporte a IntelliSense (a capacidade que dá ao desenvolvedor listar as propriedades de determinado objeto) com os tipos de cada propriedade.

Em linguagens fracamente tipadas o tipo do valor é referenciado em tempo de execução (“Late ou Virtual Binding”) e o compilador/interpretador só conhece esse tipo quando o código faz a checagem e então determina o suporte necessário à propriedade sem ocorrer penalidades.

Linguagens de tipo estático executam menos operações, notadamente pela checagem prévia e oferecem um suporte melhor na garantia da execução mas em contrapartida não possuem a flexibilidade das linguagens dinâmicas.

ECMAScript somente suporta “Late Binding”. O interpretador resolve os tipos de dados na última hora, em tempo de execução, algumas linguagens (como Ruby e Smalltalk) utilizam uma forma particular de Late Binding, a Duck Typing.

Typically chemist’s shop can sale to you with discreet treatments for various health problems. There are numerous of safe online pharmacies that will deliver medications to your address. There are divers medicines for each afflictions. Learn more about “viagra manufacturer coupon“. Maybe “viagra discount coupons” is a very much complicated matter. Matters, like “coupons for viagra“, are connected numerous types of health problems. If you need to take prescription medications, ask your dispenser to check your testosterone levels before. Sometimes the treatment options may turn on erectile dysfunction remedies or a suction device that helps get an erection. Keep in mind web-site which is ready to sell erectile disfunction drugs like Viagra without a prescription is fraudulent. When you purchase from an unknown web-site, you run the risk of getting counterfeit remedies.