Ir para conteúdo
Fórum Script Brasil
  • 0

modificar javascript para usar com banco de dados


Guest Edye Tsukamoto

Pergunta

Guest Edye Tsukamoto

Olá galera, eu tenho um javascript aqui que faz uma busca na propria página, alguém consegue modificar esse código para que ele busque as informações em um banco de dados em JS? pois eu tenho umas 3500 linhas "the_entries" , dai fica muito pesado. Quando faço uma busca apareçe a menssagem "Um scrpt da página esta provocando a execução lenta do internet explorer". Se poderem me explicar com uma linguagem de leigo eu agradeço, pois não entendo quase nada de Javascript. Agradeço.....

<html>
<head>
<title>Consulta interna</title>
</head>
<body>
<div align="center" style="width: 358; height: 97"> 
<table width="383" height="56">
<tr> 
<td height="60" width="375"> 
<form method="GET">
<p align="left">
<font size="2" face="Verdana, Arial, Helvetica, sans-serif"><b>Consulta interna:</b>
</font><font face="Verdana, Arial, Helvetica, sans-serif"><br>
<font size="2"> 
<input type="text" name="query" size="16" style="font-size: 9 pt; color: #000000; font-family: Verdana; font-variant: small-; border: 1 solid #000000">
</font></font> <font face="Verdana, Arial, Helvetica, sans-serif" size="2"> 
<input type="submit" value="Buscar" style="font-size: 8 pt; color: #000000; font-family: Verdana; font-variant: small-caps; border: 1 solid #000000">
</font> 
</form>
<font color="#666666"> </font> </td>
</tr>
</table>
<table width="383">
<tr> 
<td height="0" bgcolor="#C0C0C0" width="375"></td>
</tr>
</table>
</div>
<div align="center" style="width: 383; height: 39"> 
<table width="377">
<tr> 
<td width="369"><font size="2" face="Verdana, Arial, Helvetica, sans-serif">
&lt;script language="">

function kw_list ()
{
this.keywords = new Array ();
this.num_words = 0;
this.query = "";
this.original_query = "";
this.query_length = 0;
this.possible_points = 0;
this.multiple = points_title + points_keywords + points_description;
this.get_words = get_query;
this.no_query = no_query_found;
}

function get_query ()
{
this.query = top.location.search.substring (top.location.search.indexOf ('=') + 1);
while ((the_plus = (this.query.indexOf ("+", 0))) != -1)
{
this.query_length = this.query.length;
this.query = this.query.substring (0, the_plus) + " " + this.query.substring (the_plus + 1);
}
this.original_query = unescape (this.query);
this.query = this.original_query.toLowerCase ();
this.query_length = this.query.length; 
if (this.query != "")
{
var query_pointer = 0;
var end_word = 0;
var at_end = 0;
while ((this.num_words <= (max_keywords - 1)) && (! at_end))
{
end_word = this.query.indexOf (" ", query_pointer);
if (end_word == query_pointer)
query_pointer++;
else
{
if (end_word >= (this.query_length - 1))
at_end = 1;
if (end_word != -1)
this.keywords[this.num_words] = (this.query.substring (query_pointer, end_word)).toLowerCase ();
else
{
this.keywords[this.num_words] = this.query.substring (query_pointer, this.query_length);
at_end = 1;
}
this.num_words++;
if (query_pointer != -1)
query_pointer = end_word + 1;
if (query_pointer > (this.query_length - 1))
at_end = 1;
}
}
if (this.num_words == 0)
return (0);
else
{
this.possible_points = this.multiple * this.num_words;
return (1);
}
}
else
return (0);
}

function no_query_found ()
{
document.writeln ('<link rel="stylesheet" href="gp.css">');
document.writeln ('<CENTER><P>Pesquisa em branco.</P></CENTER>');
}
function entry (url, title, keywords, description)
{
this.url = url;
this.title = title;
this.keywords = keywords;
this.description = description;
this.points = 0;
this.search_entry = find_keyword;
this.print_entry = print_result;
}

function find_keyword (the_word)
{
var the_title = this.title.toLowerCase ();
var the_keywords = this.keywords.toLowerCase ();
var the_description = this.description.toLowerCase ();
if ((the_title.indexOf (the_word)) != -1)
this.points += points_title;
if ((the_keywords.indexOf (the_word)) != -1)
this.points += points_keywords;
if ((the_description.indexOf (the_word)) != -1)
this.points += points_description;
}

function print_result (possible_points)
{
document.writeln ('<A HREF="' + this.url + '" target="meio">' + this.title + '</A> - ' + this.description + '<br>');
}

function no_entry_printed (the_query)
{
document.writeln ('<link rel="stylesheet" href="gp.css">');
document.writeln ("<CENTER><P> Não há ocorrencia da palavra <U><B>" + the_query + "</B></U>.</P></CENTER>"); 
}

function print_intro (the_query)
{
document.writeln ("<CENTER><P>Os resultados da pesquisa por <U><B>" + the_query + "</B></U> são:</P></CENTER>"); 
}

function begin_search ()
{
var key_list = new kw_list;
var entry_printed = 0;
if (! key_list.get_words ())
key_list.no_query ();
else
{
var counter = 0;
var counter2 = 0;
for (counter = 0; counter < entry_num; counter++)
for (counter2 = 0; counter2 <= (key_list.num_words - 1); counter2++)
the_entries[counter].search_entry (key_list.keywords[counter2]);
for (counter = key_list.possible_points; counter > 0; counter--)
{ 
for (counter2 = 0; counter2 < entry_num; counter2++)
{
if (counter == the_entries[counter2].points)
{
if (entry_printed != 1)
{
entry_printed = 1;
print_intro (key_list.original_query);
}
the_entries[counter2].print_entry (key_list.possible_points);
}
}
}
if (! entry_printed)
no_entry_printed (key_list.original_query);
}
}
the_entries = new Array ();
//aqui vai as entradas para a pesquisa
the_entries[0] = new entry ("http://www.seu endereco.com.br/link.htm", "WebMaster Leandro Eber Ribeio", "leandro, autor, webmaster, dono, desenvolvedor, contatos, icq, contato, parcerias ", "Saiba um pouco sobre o WebMaster deste site, ICQ, E-mail, Contatos, Cargos, História da HP e muito mais.<br>");
the_entries[1] = new entry ("http://www.seu endereco.com.br/links.htm","Código do site Animanix","desenhos, ikki, IkkiNet, IkkiNET, SSJ_Clan, SSJ, afiliados, aliados, amigos, afilia-se","Conheça todos nossos amigos afiliados com a HP.<br>");
//abaixo vai o número de entradas existentes
var entry_num = 2; //aumenta de acordo com as obcoes de busca no caso 2 ate agora
var max_keywords = 20; //aumenta de acordo com as obcoes de busca no caso 2 ate agora
var points_title = 2; //aumenta de acordo com as obcoes de busca no caso 2 ate agora
var points_keywords = 2; //aumenta de acordo com as obcoes de busca no caso 2 ate agora
var points_description = 1;
begin_search ();
</script>
</body>

Link para o comentário
Compartilhar em outros sites

4 respostass a esta questão

Posts Recomendados

  • 0
Guest Edye Tsukamoto

Cara tem sim, tenho esse código todo em javascript que utiliza banco de dados... a página de busca, o página que exibe os resultados e um JS contendo as informações a serem pesquisadas..... o que eu quero é usar o primeiro código que eu poste, porém com banco de dados como esse aqui..

A página de busca

<html>
</head><title>BR Busca JS - Busca</title>
</head>
<body bgcolor='#FFFFFF' text="#333333" link="#FF6633" vlink="#FF6633" alink="#0099FF">
<div align="center"> <font size="2" face="Verdana"> 
&lt;script language="javascript">
function check(txt)
 { t=txt.value; n=t.indexOf("  ");
   while(n>=0)
    { t=t.substring(0,n)+t.substring(n+1,t.length);
      n=t.indexOf("  "); };
   txt.value=t; return true; };
</script>
</font></div>
<form name="srchfrm" method="get" action="br_busca_js_buscando.htm" onsubmit="check(this.srchtxt);" target="_self">
  
  <div align="center"> <font size="2" face="Verdana"> 
    <input type="text" size=30 name="srchtxt">
    - 
    <select name="srchlst">
      <option value="bd1.js">Banco de Dados 1</option>
      <option value="bd2.js">Banco de Dados 2</option>
    </select>
    <input type="submit" value="Buscar">
    <input type="hidden" name="redirecionar" value="_top">
    <input type="hidden" name="sitesporpg" value="10">
    <input type="hidden" name="pagina" value="0">
    </font> 
  </div>
</form>
<p> </p>
<p align="center"> </p>
<table width="90%" border="0" align="center">
  <tr> 
    <td height="10" align="center" valign="top"> </td>
  </tr>
  <tr> 
    <td align="center" valign="top"> <div align="center"><font size="2" face="Verdana"><font size="1"> 
        Copyright <font size="1">©</font> 2003 - Todos os direitos reservados 
        - <a href="http://www.brdesign.net/" target="_blank">BRdesign</a></font></font></div></td>
  </tr>
  <tr> 
    <td height="18" align="center" valign="top"> <div align="center"><font size="2" face="Verdana"><font size="1"><a href="http://www.brdesign.net/" target="_blank">w 
        w w . b r d e s i g n . n e t</a></font></font></div></td>
  </tr>
</table>
<p align="center"> </p>
</body>
</html>
A página que exibe os resultados..
<html>
<head>
<title>BR Busca JS - Resultados da Busca</title>
&lt;script language="javascript">
// 
var srchstr=new Array();
srchstr[0]=new Array(location.search);
flag=0;
var chrs=new Array('&','=','+');
for(i=0;i<chrs.length;i++)
 for(j=0;j<srchstr[i].length;j++)
  { if(i==2 && j==1)
     { t=unescape(srchstr[i][j]);
       srchstr[2][1]="";
       for(k=0;k<t.length;k++)
        { c=t.charAt(k);
          if(c=='"')
           { flag=(flag+1)%2; }
          else
           { srchstr[2][1]+=(flag==1 && c=="+")?" ":c; };
        };
     };
    srchstr[srchstr.length]=srchstr[i][j].split(chrs[i]);
  };
document.write('&lt;script language="javascript" src="'+srchstr[3][1]+'"></scr'+'ipt>');

// **** User Defined Display
dsp=new Array();
dsp[dsp.length]='<tr><td>%num.</td><td %bgc><a href="%link" target="%target">%title</a> Score: %score</font></td></tr>';
dsp[dsp.length]='<tr><td align="right">Descrição:</td><td %bgc>%description</td></tr>';
dsp[dsp.length]='<tr><td align="right">Palavras-chave:</td><td %bgc>%keywords</td></tr>';
dsp[dsp.length]='<tr><td align="right">Banco de Dados:</td><td %bgc>%dbase</td></tr>';
dsp[dsp.length]='<tr><td align="center" colspan=2><hr width=100%></td></tr>';
// **** End User Defined Display

</script>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"></head>
<body bgcolor='#FFFFFF' text="#333333" link="#FF6633" vlink="#FF6633" alink="#0099FF">
<div align="center"> <font size="2" face="Verdana"> 
&lt;script language="javascript">
v=new Array(); w=new Array();
for(i=1;i<3;i++)
 for(j=0;j<2;j++)
  w[w.length]=new Array(i,j); // 1 0, 1 1, 2 0, 2 1
x=new Array("+","","","-","");
for(i=0;i<srchstr[8].length;i++)
 { v[i]=new Array(1,1);
   if(srchstr[8][i]=="")
    srchstr[8][i+1]="+"+srchstr[8][i+1];
   for(j=0;j<4;j++)
    if(srchstr[8][i].indexOf(x[j])==0 && x[j]!="")
     v[i]=w[j];
   f=(srchstr[8][i].indexOf(" ")>-1)?'"':'';
   if(((v[i][0]*v[i][1])!=1))
    srchstr[8][i]=srchstr[8][i].substring(1,srchstr[8][i].length);
   x[4]+=x[v[i][0]*2+v[i][1]-2]+f+srchstr[8][i]+f+" ";
 };

fnd=new Array();
order=new Array(0,4,2,3);
last=-1;
for(i=0;i<item.length;i++)
 { sc=0; t=1; f=1;
   for(j=0;j<order.length;j++)
    { if(t<2) t=1;
      f=1;
      for(k=0;k<srchstr[8].length;k++)
       if(srchstr[8][k]!="")
        { st=srchstr[8][k].toLowerCase();
          c=-1; p=-1;
          while(p>-1 || c<0)
           { c++; p=item[i][order[j]].toLowerCase().indexOf(st,p+1)
           };
          if(c>0)
           { sc+=(c*j);
             t*=v[k][0];
           }
          else
           { f*=v[k][1]; 
           };
        };
      if((t*f)==1 && sc>0)
       { if(last!=i)
          { fnd[fnd.length]=new Array(i,sc);
            last=i; }
         else
          { fnd[fnd.length-1][1]=sc; };
       }
      else
       { if(t>1 && last==i) 
          fnd.length--;
       };
    };
 };
for(i=0;i<fnd.length-1;i++)
 for(j=i+1;j<fnd.length;j++)
  if(fnd[i][1]<fnd[j][1])
   { a=fnd[i]; fnd[i]=fnd[j]; fnd[j]=a; };

d=new Array();
d[0]=srchstr[6][1]*srchstr[5][1]; // first displayed # this page
d[1]=srchstr[5][1]*1+d[0]; // last displayed # this page
d[2]=Math.floor((fnd.length-1)/srchstr[5][1]); // number pages-1
if(d[1]>fnd.length) d[1]=fnd.length; // adjustment last # displayed
d[3]=srchstr[6][1]*1; // page number-1
document.write('<center><table border=0 width=90%><tr><td colspan=2 align=center><font size="2" face="Verdana">Buscando por: <b>');
document.write(x[4]+'</b><br>Foram encontrados '+fnd.length+' de '+item.length);
if(fnd.length>0) document.write(' sites cadastrados em nosso banco de dados.</td></tr><br>');
bgc=new Array("#bbbbbb","#aaaaaa");
op=new Array();
op[1]=new Array("%target",srchstr[4][1]);
op[4]=new Array("%dbase",srchstr[3][1]);
for(i=0;i<fnd.length;i++)
 if(fnd[i][0]>-1 && i>=d[0] && i<d[1])
  { for(j=0;j<dsp.length;j++)
     { n=fnd[i][0];
       op[0]=new Array("%link",item[n][1]+item[n][0]);
       op[2]=new Array("%score",fnd[i][1]);
       op[3]=new Array("%title",uscore(item[n][2]));
       op[5]=new Array("%description",uscore(item[n][4]));
       op[6]=new Array("%keywords",uscore(item[n][3]));
       op[7]=new Array("%num",i+1);
       op[8]=new Array("%bgc",'bgcolor="'+bgc[j&1]+'"');

       t=dsp[j];
       for(k=0;k<op.length;k++)
        { a=t.indexOf(op[k][0],0);
          if(a>-1)
           t=t.substring(0,a)+op[k][1]+t.substring(a+op[k][0].length,t.length);
        };
       document.write(t+"\n");
     };
  };

pgs='<tr><td colspan=2 align="center">Página: ';
end=srchstr[0][0].lastIndexOf("=")+1;
ext=srchstr[0][0].substring(0,end);
pga=new Array();
ltx=(d[3]>8)?"<< Anterior  ":1;
for(i=0;i<d[2]+1;i++)
 { pga[pga.length]=' <a href="br_busca_js_buscando.htm'+ext+i+'">'+ltx+'</a>\n';
   ltx=i+2;
   if(i==(d[2]-1) && i>(d[3]+7))
    ltx="  Próxima >>";
 };

for(i=0;i<pga.length;i++)
 if(i==0 || i==(pga.length-1) || (i>(d[3]-8) && i<(d[3]+8)))
  pgs+=(i!=d[3])?pga[i]:" "+(i+1);

if(d[2]>0) document.write(pgs+'</td></tr>');

document.write('</table>');
function uscore(txt)
 { for(fi=0;fi<srchstr[8].length;fi++)
    if(srchstr[8][fi].length>0)
     { fc=txt.toLowerCase().indexOf(srchstr[8][fi].toLowerCase(),0);
       while(fc>-1)
        { ft=txt.substring(0,fc)+"<b>"+txt.substring(fc,fc+srchstr[8][fi].length)+"</b>";
          txt=ft+txt.substring(fc+srchstr[8][fi].length,txt.length);
          fc=txt.toLowerCase().indexOf(srchstr[8][fi].toLowerCase(),fc+5);
        };
     };
   return txt;
 };

</script>
</font>
</div>
</body>
</html>
O banco de dados.... deverá ficar em um arquivo JS
var item=new Array();
// "Endereço","Título","Palavras-chave","Descrição"
item[item.length]=new Array("Endereço","Título","palavra chave","Descrição");
item[item.length]=new Array("Endereço","Título","palavra chave","Descrição");
item[item.length]=new Array("Endereço","Título","palavra chave","Descrição");
item[item.length]=new Array("Endereço","Título","palavra chave","Descrição");
item[item.length]=new Array("Endereço","Título","palavra chave","Descrição");
item[item.length]=new Array("Endereço","Título","palavra chave","Descrição");
Agradeço a quem colaborar..

Link para o comentário
Compartilhar em outros sites

  • 0
Guest Edye Tsukamoto

A ta.. e tem como adaptar o primeiro que eu postei aqui para funcionar como o segundo? ou fazer com que não apareça aquela mensagem dizendo que um script está provocando uma execução lenta do internet explorer?

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,2k
    • Posts
      651,9k
×
×
  • Criar Novo...