Foros del Web » Programando para Internet » ASP Clásico »

Consulta sobre escritura de cod ASP, básica quizás :(

Estas en el tema de Consulta sobre escritura de cod ASP, básica quizás :( en el foro de ASP Clásico en Foros del Web. Hola, bueno la consulta en sí es un tanto básica, pero bueno, mejor morir preguntando que quedarse en la duda, no?. Alguien por ahí me ...
  #1 (permalink)  
Antiguo 13/11/2008, 15:04
 
Fecha de Ingreso: marzo-2006
Mensajes: 66
Antigüedad: 19 años, 1 mes
Puntos: 0
Pregunta Consulta sobre escritura de cod ASP, básica quizás :(

Hola,
bueno la consulta en sí es un tanto básica, pero bueno,
mejor morir preguntando que quedarse en la duda, no?.

Alguien por ahí me dijo que escribir ASP junto con HTML de la forma :

Código asp:
Ver original
  1. Response.Write("<body onload='...' >")
  2. IF I1= 0 THEN
  3. ...
  4. END IF
  5. Response.Write("</body>")

Sobrecarga más al servidor que escribirlo de la forma :
Código asp:
Ver original
  1. <body onload='...' >
  2. <%
  3. IF I1= 0 THEN
  4. ...
  5. END IF
  6. %>
  7. </body>

Ya me he acostumbrado a hacerlo de la 1era forma.
Es cierto que de ésta se "sobrecarga" al servidor?.

Saludos y gracias por molestarse en leer.
  #2 (permalink)  
Antiguo 13/11/2008, 15:11
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 20 años
Puntos: 839
Respuesta: Consulta sobre escritura de cod ASP, básica quizás :(

Técnicamente, yo pienso que sí, ya que de la primera forma el servidor tiene que procesar línea por línea (aunque lo haga en muy poco tiempo), mientras que de la segunda forma solo procesa lo que está entre <% y %>. Personalmente, veo mucho más ventajoso la segunda, tendrás menos problemas con las comillas... y un largo etc..

No te preocupes, con un poco de práctica, poco a poco sacas esa costumbre .
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #3 (permalink)  
Antiguo 13/11/2008, 15:28
Avatar de Myakire
Colaborador
 
Fecha de Ingreso: enero-2002
Ubicación: Centro de la república
Mensajes: 8.849
Antigüedad: 23 años, 3 meses
Puntos: 146
Respuesta: Consulta sobre escritura de cod ASP, básica quizás :(

Haz un archivo ASP, copia estos códigos y coméntanos tus conclusiones:

Código asp:
Ver original
  1. 'MODO 1
  2. tiempoinicio = Timer
  3. For i = 1 To 800000
  4. %>*<%
  5. Next
  6. tiempototal = FormatNumber(Timer - tiempoinicio, 3, True)
  7. Response.Write "<br>MODO 1: " & tiempototal & "<br>"
  8.  
  9. 'MODO 2
  10. tiempoinicio = Timer
  11. For i = 1 To 800000
  12. Response.Write "*"
  13. Next
  14. tiempototal = FormatNumber(Timer - tiempoinicio, 3, True)
  15. Response.Write "<br>MODO 2: " & tiempototal & "<br>"
  16.  
  17. 'MODO 3
  18. tiempoinicio = Timer
  19. With Response
  20. For i = 1 To 800000
  21. .Write "*"
  22. Next
  23. End With
  24. tiempototal = FormatNumber(Timer - tiempoinicio, 3, True)
  25. Response.Write "<br>MODO 3: " & tiempototal & "<br>"

Luego, corre estos otros dos códigos que comparan la impresión directa VS la concatenación:

Código asp:
Ver original
  1. 'MODO 4
  2. tiempoinicio = Timer
  3. Cadena = ""
  4. response.write "<ul>"
  5. for i = 1 to 10000  
  6. response.write "<li>" & i & "</li>"
  7. next
  8. response.write "</ul>"
  9. Response.Write Cadena & "<br>"
  10. tiempototal = FormatNumber(Timer - tiempoinicio, 3, True)
  11. Response.Write "<br>MODO 4: " & tiempototal & "<br>"
  12.  
  13. 'MODO 5
  14. tiempoinicio = Timer
  15. cadena = "<ul>"
  16. for i = 1 to 10000
  17. cadena= cadena& "<li>" & i & "</li>"
  18. next
  19. cadena= cadena& "</ul>"
  20. response.write cadena & "<br>"
  21. tiempototal = FormatNumber(Timer - tiempoinicio, 3, True)
  22. Response.Write "<br>MODO 5: " & tiempototal & "<br>"
  #4 (permalink)  
Antiguo 14/11/2008, 06:34
 
Fecha de Ingreso: marzo-2006
Mensajes: 66
Antigüedad: 19 años, 1 mes
Puntos: 0
De acuerdo Respuesta: Consulta sobre escritura de cod ASP, básica quizás :(

Gracias muchachos, ahora voy a probar lo que me indica Myakire.

Se vale si lo pruebo de forma local, o debo hacerlo directamente con
el server?

edit__

A juzgar por los tiempos devueltos por el 1er script :

Probado en de forma local :
Cita:
MODO 1: 0,582

MODO 2: 0,602

MODO 3: 2,703
Probado en el servidor principal :
Cita:
MODO 1: 0.203

MODO 2: 0.250

MODO 3: 1.438
Mientras más cod. ASP posea el script, mayor el tiempo de procesamiento.
no?.

_Ahora voy a probar el 2do script, luego les cuento...


EDIT2__
Probé el 2do script y me devolvió (de 1 a 10000 para cada modo, según el script) :

De forma local :
Cita:
MODO 4: 0,027

MODO 5: 14,152
Desde el server :
Cita:
MODO 4: 0.000

MODO 5: 1.141
Siento preguntar, pero no entendí bien esta diferencia, está claro que demora mucho menos la respuesta en el MODO 4, sin embargo aún no comprendo bien la diferencia :( .

Gracias, nuevamente.

Última edición por Yarriot; 14/11/2008 a las 07:05 Razón: agrego resultados
  #5 (permalink)  
Antiguo 14/11/2008, 16:11
Avatar de Myakire
Colaborador
 
Fecha de Ingreso: enero-2002
Ubicación: Centro de la república
Mensajes: 8.849
Antigüedad: 23 años, 3 meses
Puntos: 146
Respuesta: Consulta sobre escritura de cod ASP, básica quizás :(

La diferencia entre las dos computadoras es simplemente por la arquitectura de cada una de ellas, como ves es equivalente, valía con que hicieras las pruebas en uno solo, pero nunca sobra si es con el fin de aumentar conocimiento.

La diferencia entre el script 4 y 5 es por que ASP (y en general todos los lenguajes) tiene un manejo muy pobre en cuanto a concatenar GRANDES cantidades de caracteres, para que te des una idea .NET ha implementado una clase especial solo para ese fin. De esa corrida podemos concluir que jamas hagas páginas ASP concatenando la salida HTML y mandándola al final en un solo response.write (y mira que he visto mucha gente que sigue haciendo eso)

De los scripts 1,2 y 3 puedes considerar como cierto que la forma de programar de abrir y cerrar etiquetas <%%> es mejor para el desempeño de la interpretación del ASP por parte del IIS contra el utilizar constantemente el objeto Response; si le pensamos es hasta lógico. Entonces tu amigo tiene razón en lo que te comentó , y ahora sí puedes creerle por que ya lo comprobaste y no solo por que lo escuchaste de otra persona, te sorprendería la cantidad de "imprecisiones" que decimos muchas personas en los foros no debes de creer todo lo que leas en Internet o todo lo que escuches sin analizarlo y si es posible, comprobarlo

Saludos

Última edición por Myakire; 25/11/2008 a las 15:56
  #6 (permalink)  
Antiguo 17/11/2008, 08:59
Avatar de adiazm  
Fecha de Ingreso: julio-2008
Ubicación: Santiago
Mensajes: 51
Antigüedad: 16 años, 8 meses
Puntos: 1
Respuesta: Consulta sobre escritura de cod ASP, básica quizás :(

Excelente comentario Myakire
  #7 (permalink)  
Antiguo 25/11/2008, 07:36
 
Fecha de Ingreso: marzo-2006
Mensajes: 66
Antigüedad: 19 años, 1 mes
Puntos: 0
De acuerdo Respuesta: Consulta sobre escritura de cod ASP, básica quizás :(

Cita:
Iniciado por Myakire Ver Mensaje
...

La diferencia entre el script 4 y 5 es por que ASP (y en general todos los lenguajes) tiene un manejo muy pobre en cuanto a concatenar GRANDES cantidades de caracteres, para que te des una idea .NET ha implementado una clase especial solo para ese fin. De esa corrida podemos concluir que jamas hagas páginas ASP concatenando la salida HTML y mandándola al final en un solo response.write (y mira que he visto mucha gente que sigue haciendo eso)

...
Te refieres a ésto Myakire, no?

Código PHP:
  Response.Write("<td bgcolor='#000080'><font face='Arial' size='1' color='#FFFFFF'>Instalación</font></td>"
Y claro que pregunté porque me cuesta quedarme con lo que me dicen y no verlo o comprobarlo por mi mismo, apenas me alcanza para aprendiz así que debo aprovechar a preguntar todo lo que se me ocurra o dude...

Saludos y gracias por tus comentarios.
Yarriot
  #8 (permalink)  
Antiguo 25/11/2008, 07:51
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 20 años
Puntos: 839
Respuesta: Consulta sobre escritura de cod ASP, básica quizás :(

A lo que Myakire se refería con la afirmación de que nunca hagas una concatenación para solo imprimir en el final con un único Response.Write es el del MODO 5, fíjate cuál es la diferencia con el MODO 4 y verás a qué se refiere.
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #9 (permalink)  
Antiguo 25/11/2008, 08:50
 
Fecha de Ingreso: marzo-2006
Mensajes: 66
Antigüedad: 19 años, 1 mes
Puntos: 0
Respuesta: Consulta sobre escritura de cod ASP, básica quizás :(

Hola David,
Por lo que visto con detención, el sueño me está ganando, la concatenación gigantesca lograda dentro de un ciclo For e impresa al final con un Response.Write, es la que más se demora en vez de estar imprimiéndola "línea por línea" que sería el MODO 4. Esto debido a todo el procesamiento que se debe hacer para interpretar el Response.write y desplegar un resultado. Eso es lo que he entendido.

Ahora a lo que iba yo es cuando escribo ASP+HTML , durante TODA mi página,
de la forma :

Código PHP:
//' Imagínate imprimiendo sólo con Response.Write miles de líneas (bodys,forms,tables y un largo etc.) como a continuación...
...
Response.Write("<td bgcolor='#000080'><font face='Arial' size='1' color='#FFFFFF'>Instalación</font></td>"

... 
De ésta forma también estoy siendo "poco efectivo" en optimizar mi código ASP no es cierto??? A fin de cuentas trabajo puramente con Response.Write.
Me acostumbraron acá a hacerlo así, y yo que antes lo hacía de la forma puritana.

Saludos
  #10 (permalink)  
Antiguo 25/11/2008, 08:59
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 20 años
Puntos: 839
Respuesta: Consulta sobre escritura de cod ASP, básica quizás :(

Pues sí, tú mismo has comprobado que es así, de la forma como estás haciendo tarda más en procesarse (MODO1 vs. MODO 2).
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 12:12.