Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Guilherme Rocha

para otimizar código

Recommended Posts

Fala ai galera.. fiz um código aqui e estou aberto a sugestões de otmização de código.

Fiquem a vontade... lembrando que ele esta funcionando :)

 

<% 
Option Explicit

response.Buffer = true
response.Expires = 0
response.CacheControl = "Private"

abrirBanco()

dim rsAreaParceiros

strSQL = "SELECT TIPO_DOC FROM TB_AREAPARCEIROS ORDER BY TIPO_DOC DESC"
set rsAreaParceiros = conexao.execute(strSQL)

dim Contador : Contador = 1
dim rsTeste
dim TipoAntigo
		
while not rsAreaParceiros.eof
							
	dim Categoria : Categoria = rsAreaParceiros("TIPO_DOC")
						
	if (Categoria <> TipoAntigo) then %>
		<tr>
			<td class="tituloParceiro" style="font-size:11px; background-position:6px 10px;"><a href="#" onClick="showHide('div<%=Contador%>')"><%=Categoria%></a></td>
		</tr>
		<% strSQL = "SELECT ID, TITULO FROM TB_AREAPARCEIROS WHERE TIPO_DOC = '" & Categoria & "'"
		set rsTeste = conexao.execute(strSQL)
									
		if not rsTeste.eof then
			Response.Write  "<tr>"
			Response.Write  "	<td style=""padding:10px 0;"">"
			Response.Write  "		<table border=""0"" cellpadding=""0"" cellspacing=""1"" class=""areaparceiros textoGrande"" style=""display:none;"" id=""div"& Contador &""">"
		end if
		
		while not rsTeste.eof %>
								
			<tr>
				<td><%=rsTeste("TITULO")%><span class="textoPequeno" style="padding-left:8px">(<a href="download.asp?id=<%=rsTeste("ID")%>">Download</a>)</span></td>
			</tr>
								
		<%

		rsTeste.moveNext
		wend	
							
		if (rsTeste.eof) then
			Response.Write  "		</table>"
			Response.Write  "	</td>"
			Response.Write  "</tr>"
		end if
								
		rsTeste.close
		set rsTeste = nothing
								
		TipoAntigo = rsAreaParceiros("TIPO_DOC")
		Contador = Contador + 1
									
	end if

	rsAreaParceiros.moveNext							
	wend
				
	rsAreaParceiros.close
	set rsAreaParceiros = nothing
%>

Compartilhar este post


Link para o post
Compartilhar em outros sites

a depender...

 

o que ele faz necessariamente?

 

Ele pega documentos cadastrados e poe listada as categorias, quando clica na categoria abre em baixo uma (display:block) uma tabela com os registros que fazem parte dessa categoria. Usei 2 recordsets pq eu uso um contador que adiciona o id para a tabela sumir e aparecer ao clicar.. com 1 so nao tava conseguindo.. é isso.. abcs

Compartilhar este post


Link para o post
Compartilhar em outros sites

É possível fazer usando apenas um RecordSet.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom, seguem algumas dicas que posso dar vendo de relance:

 

1. É, em geral utilizar se utilizar mais de 1 recordset ao mesmo tempo você está fazendo coisa errada.

 

2. Response.Expires = 0 também, se puder ser removido é melhor.

 

3. Sempre que possível, utilizar apenas 1 bloco ASP. Quanto menos, melhor. Mesmo com Response.buffer = true.

 

4. "SELECT ID, TITULO FROM TB_AREAPARCEIROS WHERE TIPO_DOC = '" & Categoria & "'" deveria ser: "SELECT ID, TITULO FROM TB_AREAPARCEIROS WHERE TIPO_DOC = ?" utilizando um ADODB.Command e Parameter, esta é uma boa prática que aumenta consideralvemente a segurança do seu programa, uma vez que ele separa o que é variável e o que é a Query.

 

5. Melhor que utilizar queries intepretadas é utilizar stored procedures, que também estão de acordo com as seguranças adquiridas por #4

 

Espero que ajude.

 

Fabio Zendhi Nagao ( nagaozen )

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.