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

Secciones y Subsecciones

Estas en el tema de Secciones y Subsecciones en el foro de ASP Clásico en Foros del Web. Hola, mira que tengo experiencia en esto del asp y cada vez que me lio con un nuevo proyecto me atasco de la misma manera, ...
  #1 (permalink)  
Antiguo 22/11/2010, 10:52
Avatar de tatoman  
Fecha de Ingreso: abril-2002
Ubicación: Madrid
Mensajes: 215
Antigüedad: 21 años, 11 meses
Puntos: 1
Secciones y Subsecciones

Hola, mira que tengo experiencia en esto del asp y cada vez que me lio con un nuevo proyecto me atasco de la misma manera, si no es un punto es en otro.

Estoy creando un proyecto muy sencillito y estoy mezclando un menu CSS con una BBDD.

es un menu Horizontal que debe contener varias secciones y estas a su vez varias subsecciones:

Ejemplo:

Emails->yahoo, gmail, hotmail
Deportes -> futbol, basquet, rugby
etc...

He creado la BBDD con 2 tablas,(muestro tabla y campos):

SECCIONES:Id,seccion,titulo
SUBSECCION:Id,seccion_principal,subseccion,titulo

Pues mi idea era hacer un loop (while) por la BBDD hasta que agoto los campos de las secciones, y entre medias poner otro loop (while) con las subsecciones que contienen el campo seccion activo.

me funciona OK, pero creo que eso va a cargar mucho el servidor y si hay muchos usuarios online seguro que me lo tumban.

¿Alguien sabe algo mas secillo de hacer?,

Gracias por anticipado, os dejo el codigo pero es un poco toston:


<%@LANGUAGE="VBSCRIPT"%>
<!--#include file="../Connections/conexion.asp" -->

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<%
' CONEXION PARA LAS CATEGORIAS
Dim Repeat1__numRows
Dim Repeat1__index

Repeat1__numRows = -1
Repeat1__index = 0
secciones_numRows = secciones_numRows + Repeat1__numRows
%>
<%
Dim secciones
Dim secciones_numRows

Set secciones = Server.CreateObject("ADODB.Recordset")
secciones.ActiveConnection = MM_conexion_STRING
secciones.Source = "SELECT * FROM secciones"
secciones.CursorType = 0
secciones.CursorLocation = 2
secciones.LockType = 1
secciones.Open()

secciones_numRows = 0
%>
<!-- TemplateBeginEditable name="doctitle" -->
<!-- TemplateEndEditable -->
<!-- TemplateBeginEditable name="head" -->
<!-- TemplateEndEditable -->
<link rel="stylesheet" type="text/css" href="../menu/menu_style.css" />
</head>

<body>

<div class="nav-container-outer">
<img src="http://www.forosdelweb.com/f15/menu/images/nav-bg-l.jpg" alt="" class="float-left" />
<img src="http://www.forosdelweb.com/f15/menu/images/nav-bg-r.jpg" alt="" class="float-right" />
<ul id="nav-container" class="nav-container">

<%
'CREO LA BARRA DE NAVEGACION CON LAS SECCIONES (SE HACE LOOP A LA BBDD)
DIM seccion, titulo_seccion

While ((Repeat1__numRows <> 0) AND (NOT secciones.EOF))
seccion = (secciones.Fields.Item("seccion").Value)
titulo_seccion = (secciones.Fields.Item("titulo_seccion").Value)
%>
<li><a class="item-primary" href="" target="_self" title="<% response.Write(titulo_seccion) %>"><% response.Write(seccion) %></a>
<ul style="width:150px;">

<%
'CONEXION PARA LAS SUBSECCIONES
Dim Repeat2__numRows
Dim Repeat2__index

Repeat2__numRows = -1
Repeat2__index = 0
subsecciones_numRows = subsecciones_numRows + Repeat2__numRows
Dim subsecciones
Dim subsecciones_numRows

Set subsecciones = Server.CreateObject("ADODB.Recordset")
subsecciones.ActiveConnection = MM_conexion_STRING
subsecciones.Source = "SELECT * FROM subsecciones where seccion_principal LIKE '%" + Replace(seccion, "'", "''") + "%' "
subsecciones.CursorType = 0
subsecciones.CursorLocation = 2
subsecciones.LockType = 1
subsecciones.Open()

subsecciones_numRows = 0
DIM subseccion, titulo, vinculo, votos
%>

<% While ((Repeat2__numRows <> 0) AND (NOT subsecciones.EOF))
subseccion = (subsecciones.Fields.Item("subseccion").Value)
vinculo = (subsecciones.Fields.Item("vinculo").Value)
titulo = (subsecciones.Fields.Item("titulo_subseccion").Val ue)
%>
<li><a href="<%response.Write(vinculo)%>" title="<%response.Write(subseccion)%>" target="_blank" ><%response.Write(titulo)%></a></li>

<% ' HAGO EL LOPP PARA SACAR LA SIGUIENTE SUBCATEGORIA DE ESTA CATEGORIA
Repeat2__index=Repeat2__index+1
Repeat2__numRows=Repeat2__numRows-1
subsecciones.MoveNext()
Wend
%>
<%
'CIERRO EL REGISTRO DE SUBSECCIONES PARA PODER LANZARLO DE NUEVO EN LA PROXIMA CATEGORIA
subsecciones.Close()
Set subsecciones = Nothing
%>

</ul>
</li>
<li><span class="divider divider-vert" ></span></li>
<%
Repeat1__index=Repeat1__index+1
Repeat1__numRows=Repeat1__numRows-1
secciones.MoveNext()
Wend
%>
<li class="clear">&nbsp;</li>
</ul>
</div>
<br/>
<!-- TemplateBeginEditable name="contenido" -->
<table width="100%" border="0">
<tr>
<td>&nbsp;</td>
</tr>
</table>
<!-- TemplateEndEditable -->
</body>
</html>
<%
secciones.Close()
Set secciones = Nothing
%>
<%
subsecciones.Close()
Set subsecciones = Nothing
%>
__________________
Elias Frances
Webmaster (ultimos proyectos) de:
www.internet20.es
  #2 (permalink)  
Antiguo 22/11/2010, 11:47
Avatar de Myakire
Colaborador
 
Fecha de Ingreso: enero-2002
Ubicación: Centro de la república
Mensajes: 8.849
Antigüedad: 22 años, 2 meses
Puntos: 146
Respuesta: Secciones y Subsecciones

Cita:
...
Pues mi idea era hacer un loop (while) por la BBDD hasta que agoto los campos de las secciones, y entre medias poner otro loop (while) con las subsecciones que contienen el campo seccion activo.

me funciona OK, pero creo que eso va a cargar mucho el servidor y si hay muchos usuarios online seguro que me lo tumban.
...
Solo como aporte, cuando genero menús (o menues para los puristas) ya sea en javascript o de otra forma que requiere de mucho procesamiento por parte de la BD (ejemplo, cada rama verificar si le corresponde a cierto cliente, contar los elementos de cada rama y colocar un total, analizar si cada producto de esa rama debe o no verse en Internet, etc. etc.), yo genero el código del menú en un archivo plano y solo lo incluyo en ASP, tengo una tarea programada que se ejecuta a cierta hora todos los días que actualiza ese archivo plano.

Con eso la carga del sitio "se salta" completamente la generación del menú y me olvido de si hay muchos usuarios o no.

Saludos
  #3 (permalink)  
Antiguo 22/11/2010, 16:45
Avatar de tatoman  
Fecha de Ingreso: abril-2002
Ubicación: Madrid
Mensajes: 215
Antigüedad: 21 años, 11 meses
Puntos: 1
Respuesta: Secciones y Subsecciones

Me parece una estupenda solucion, ¿tienes algun ejemplo de codigo basico?
__________________
Elias Frances
Webmaster (ultimos proyectos) de:
www.internet20.es
  #4 (permalink)  
Antiguo 22/11/2010, 18:54
Avatar de Myakire
Colaborador
 
Fecha de Ingreso: enero-2002
Ubicación: Centro de la república
Mensajes: 8.849
Antigüedad: 22 años, 2 meses
Puntos: 146
Respuesta: Secciones y Subsecciones

Aquí no, pero esta fácil, el código que pones de ejemplo todo el ASP que genera tus listas en lugar de que lance la salida al cliente se generaría en un archivo plano vía FSO, por ejemplo:

<%
set objfile = createObject("scripting.filesystemobject")
set txtFile = objfile.CreateTextFile(PathYRutaDeLArchivo)
txtFile.write("<ul id=""nav-container"" class=""nav-container"">")
DIM seccion, titulo_seccion

While ((Repeat1__numRows <> 0) AND (NOT secciones.EOF))
seccion = (secciones.Fields.Item("seccion").Value)
titulo_seccion = (secciones.Fields.Item("titulo_seccion").Value)

txtFile.write("<li><a class=""item-primary"" href="""" target=""_self"" title=""&titulo_seccion&""">"&seccion&"</a>")
txtFile.write("<ul style=""width:150px;"">")
...
etc etc etc
...
%>

checas?, ese programa lo pones en la tarea programada, y ya solo en tu archivo asp donde colocas el menú, haces un include al archivo generado y listo

Saludos
  #5 (permalink)  
Antiguo 23/11/2010, 04:33
Avatar de tatoman  
Fecha de Ingreso: abril-2002
Ubicación: Madrid
Mensajes: 215
Antigüedad: 21 años, 11 meses
Puntos: 1
Respuesta: Secciones y Subsecciones

Perfecto, lo entiendo a la perfeccion, voy a probarlo y te cuento.

1000 gracias por tu ayuda!
__________________
Elias Frances
Webmaster (ultimos proyectos) de:
www.internet20.es
  #6 (permalink)  
Antiguo 23/11/2010, 06:05
Avatar de tatoman  
Fecha de Ingreso: abril-2002
Ubicación: Madrid
Mensajes: 215
Antigüedad: 21 años, 11 meses
Puntos: 1
Respuesta: Secciones y Subsecciones

Funciona fenomenal!!! muchas gracias

Y no me carga el servidor, ha sido una estupenda aportacion
__________________
Elias Frances
Webmaster (ultimos proyectos) de:
www.internet20.es
  #7 (permalink)  
Antiguo 23/11/2010, 12:41
Avatar de Myakire
Colaborador
 
Fecha de Ingreso: enero-2002
Ubicación: Centro de la república
Mensajes: 8.849
Antigüedad: 22 años, 2 meses
Puntos: 146
Respuesta: Secciones y Subsecciones

No se si sea una práctica generalizada, pero a mi me se ocurrió después de estar caminando y dando vueltas unos 30 minutos como una solución rápida para sacarme de encima la presión del cliente, ya me tenia aburrido con su "la página carga lento", "el servidor se atonta"; a mi me funcionó perfecto y me alegro mucho que a ti también

Saludos

Etiquetas: secciones
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 01:24.