Ir para conteúdo

POWERED BY:

Arquivado

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

ruinas

Paginação de TXT

Recommended Posts

Ola amigos, eu estou criando um sistema de newsletter com importação de e-mails por TXT, eu fiz aqui uma paginação.Na minha maquina ele cadastra cerca de 2.000 emails em 3 min.Vou postrar o codigo aqui para alguem que possa me ajudar e tambem para aqueles que querem ele para estudos.Gostaria de melhorar o desempenho dele e deixando ele mais rapido.Se alguem puder dar uma mão;<% response.buffer="true"Server.ScriptTimeOut = 100000000ScriptTimeOut = 1000000000%><!--#Include file="conecta.asp"--><% idcat = request("idcategoria") lista = request("lista") cont = request("cont") set fso = CreateObject("Scripting.FileSystemObject") set txt = fso.OpenTextFile(Server.Mappath(lista),1,false,0) AbreConexao reg = 100 cad = request("cad") n_cad = request("n_cad") pag = request("pag") if pag = "" or 0 Then pag = 1 end if Maxpag = int(Cint(cont)/ Cint(reg))+1 'Se é apenas um bloco. If cInt(cont) <= Cint(reg) Then contador = 0 per = 0 While not txt.AtEndOfStream email = trim(txt.ReadLine) email = left(email, 255) email = replace(email, "'", "") email = replace(email, " ", "") SQL = "select * from Emails where idcategoria = "& idcat &" and email = '"& email &"' " Set rs = conexao.execute(SQL) On error resume next if rs.eof Then SQL = "insert into Emails(idcategoria, email) Values ("& idcat &",'"& email &"') " Conexao.execute(SQL) on Error Resume Next cad = cad + 1 else n_cad = n_cad + 1 end if contador = contador + 1 Wend per = (100 * Cint(contador))/Cint(cont) %> <script> window.open("importar_status.asp?per=<%=per%>","status"); </Script> <% fim = 1 else contador = request("contador") if contador = "" Then contador = 0 end if reg2 = Cint(reg) * (Cint(pag)-1) if reg2 > 0 Then for x = 1 to reg2 if txt.AtEndOfStream = false Then txt.SkipLine end if Next End if regAtual = 1 While not txt.AtEndOfStream and regAtual < cInt(reg) email = trim(txt.ReadLine) email = left(email, 255) email = replace(email, "'", "") email = replace(email, " ", "") SQL = "select * from Emails where idcategoria = "& idcat &" and email = '"& email &"' " Set rs = conexao.execute(SQL) On error resume next if rs.eof Then SQL = "insert into Emails(idcategoria, email) Values ("& idcat &",'"& email &"') " Conexao.execute(SQL) on Error Resume Next cad = cad + 1 else n_cad = n_cad + 1 end if regAtual = regAtual + 1 contador = contador + 1 WEnd per = (100 * Cint(contador))/Cint(cont) %> <script> window.open("importar_status.asp?per=<%=per%>","status"); </Script> <% End if if (cInt(pag) >= cInt(Maxpag)) Then fim = 1 else fim = 0 pag = pag + 1 end if ' iremos fazer um script para enviar este formulário novamente após um tempo if fim = 0 then response.write "<br><br><center><font face=verdana size=3 color=red><b>" response.write "Os E-mails Estão sendo Cadastrados Aguarde!!!</b></font></center>" %> <script> function Envia() { document.form.submit(); } setTimeout("Envia();",1000); </script> <meta name="generator" content="Namo WebEditor v5.0(Trial)"> </HEAD> <BODY> <form name="form" method="post" action="importar_cima.asp"> <input type="hidden" name="cont" value="<%=cont%>"> <input type="hidden" name="lista" value="<%=lista%>"> <input type="hidden" name="idcategoria" value="<%=idcat%>"> <input type="hidden" name="contador" value="<%=contador%>"> <input type="hidden" name="pag" value="<%=cint(pag)%>"> <input type="hidden" name="cad" value="<%=cint(cad)%>"> <input type="hidden" name="n_cad" value="<%=cint(n_cad)%>"> </form> <% Set txt = nothing set fso = nothing else set txt = nothing Set txt = fso.GetFile(Server.MapPath(lista)) txt.delete Set txt = nothing Set fso = nothing Set upload = nothing 'redirect confirma 'response.redirect "importar_conf.asp?cad="&cad&"&n_cad="&n_cad&"&total="&total %> <script> window.open("importar_conf.asp?total=<%=contador%>&cad=<%=cad%>&n_cad=<%=n_cad%>","cima"); </Script> <% rs.close FechaConexao Set rs = nothing end if %>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não normalmente (Dim Var).Quando o servidor se depara com uma variável ele procura no script para saber se já existe antes de criá-la. Declarando as variáveis o código roda cerca de 10% mais rápido.

Compartilhar este post


Link para o post
Compartilhar em outros sites

eu ja declarei todas as variaveis e fiz alguns testes.Nos testes notei que o que anda deixando o codigo mais pesado é o SELECT que tem para ver se o e-mail ja existe na categoria escolhido.Alguem tem alguma sugestão de como tirar o select e mesmo assim nao cadastrar e-mails repetidos ou algo pareciso para deixar o script mais leve ???

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.