29/10/2011 Development / java script

Imagine a seguinte situação: Você tem um publicador de mensagens que fica chamando varios metodos, e esses metodos escrevem as mensagens tratadas na tela.

function RecebePublicacao(msg){
if(msg = tal){
printX(msg)
}

if(msg = tal){
printY(msg)
}

if(msg = tal){
printZ(msg)
}
}

Oque acontece nesse cenario? Se a maquina do cliente for um 386, o IE 7, 8...vai peidar...porque a engine de javascript, consume muito recurso pra printar os objetos na tela :-(

//**********************************************************

Uma maneira de solucionar esse problema. ;-)

var arrayCotacao, arrayPublicacao, arrGeral = [];
function RecebePublicacao(msg){
if(msg = tal){
arrayCotacao.push(msg)
}

if(msg = tal){
arrayPublicacao.push(msg)
}

if(msg = tal){
arrayGeral.push(msg)
}
}

function trataCotacao(){
if(arrCotacao.lenght>0){
var msg = arrCotacao.shift();
$handleEvent("Cotacao", msg)
}
}
function trataPublicacao(){
...
}
function trataGeral(){
...
}

setInterval(trataCotacao, 1)
setInterval(trataPublicacao, 1)
setInterval(trataGeral, 1)

Dessa maneira o browser cadencia os processos, e deixa mais leve a aplicação. Espero que sirva!