Olá pessoal sou novo no fórum pois o meu oráculo Google não conseguiu resolver meu problema :P. Mas então indo direto ao assunto gostaria de entender por qual motivo meu script trava o navegador, não consigo enxergar se o problema é lógico ou outra coisa…
Criei um código javascript para gerar INSERTS para meu banco de dados em uma tabela específica minha, por isso, não quero que entendam meu código mas apenas uma linha específica que está comentada.
function randAutorHasPub()
{
var k = 0;
var l = 0;
for (i=30; i<90; i++)
{
var loop = (Math.random());
var loopAux = loop;
if (loopAux < 1)
{
loop = 1;
if (loopAux > 0.5)
{
loop = 2;
if (loopAux > 0.75)
{
loop = 3;
if (loopAux > 0.9)
{
loop = 4;
}
}
}
}
for (j=0; j<loop; j++)
{
var aut = [loop];
var checkAut = [loop];
var diffVal = false;
do
{
for (u=0; u<loop; u++)
{
aut[u] = Math.floor(Math.random()*120+1);
checkAut[u] = aut[u];
}
for (k=0; k<loop; k++)
{
for (l=0; l<loop; l++)
{
if (checkAut[k] == aut[l] && diffVal == false)
{
diffVal = true;
if (k==l)
{
diffVal = false;
alert('UHU'); //OBSERVEM ESTA LINHA POR FAVOR!!!!!!!!
}
}
}
}
}
while(diffVal == true);
document.getElementById('resultado').innerHTML += "INSERT INTO autor_has_publicacao VALUES ("+aut[j]+", "+(i+1)+"); <br />";
}
}
}
O id ‘resultado’ é um [color=blue][/color] onde gero os textos de INSERTS no meu HTML que é este:
<!DOCTYPE html>
<html lang="pt-br">
<head>
<meta charset="utf-8"/>
<script>
function randAutorHasPub()
{
//Código acima escrito aqui
}
//Código restante muito extenso e sem utilidade para este caso
</script>
</head>
<body onload="randAutorHasPub();">
<article id="resultado"></article>
</body>
</html>
Gostaria que notassem a unica linha comentada no primeiro codigo que mostrei (javascript) onde coloquei um ALERT. Quando eu carrego o script com o ALERT ele mantém executando o script e fica gerando o meu texto conforme vou fechando a mensagem (basta clicar algumas vezes que começa a aparecer os INSERTS), contudo, quando eu não uso este ALERT o navegador simplesmente não mostra nada e fica no loading eternamente. Testei no Chrome e o IE.
Tenho quase certeza que não estou conseguindo enxergar um erro de looping infinito pois mesmo clicando em OK nas mensagens ou usando a opção do CHROME para “impedir de abrir janelas adicionais” o navegador continua carregando.
Se puderem testar no navegador de vocês eu agradeço… Ou se enxergarem o motivo peço-lhes ajuda…
Obrigado,
Thiago Moreno.