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

Problema con javascript y sesiones ASP

Estas en el tema de Problema con javascript y sesiones ASP en el foro de ASP Clásico en Foros del Web. Holas, Estoy comenzando con esto del ajax y tengo un problema con las sesiones de asp (bien podria estar en el foro de javascript o ...
  #1 (permalink)  
Antiguo 24/06/2008, 10:07
 
Fecha de Ingreso: agosto-2004
Mensajes: 131
Antigüedad: 20 años, 8 meses
Puntos: 2
Pregunta Problema con javascript y sesiones ASP

Holas,

Estoy comenzando con esto del ajax y tengo un problema con las sesiones de asp (bien podria estar en el foro de javascript o ajax, pero el problema es de asp)

La estructura de la aplicación es la siguiente:

(1) ASP que genera gráfica -----> (2) AJAX -----> (3) archivo asp que lista los datos desde la bd

Todo esto funciona perfecto, efectivamente el AJAX llama al archivo y coloca un mensaje de "on loading..." y luego se despliegan los registros obtenidos desde la bd, eso está OK

Digamos que en (1) genero la consulta sql con asp y la guardo en la variable de sesión sql_funct, luego en (3) rescato esa sql desde la variable de sesión y realizo la consulta a la bd.

Ahora bien, es necesario agregar un nivel más a esta estructura

(1) -----> (2) -----> (3)
|
V
(4) ------>(5) AJAX ----- > (6) Consulta a la BD

Esto quiere decir que desde (1), existe un link que puedo seguir y que me lleva a (4), a su vez en (4) sigo el mismo proceso que en (1), esto quiere decir que en (4) genero una sql que paso a (6) mediante la variable de sessión sql_funct (la misma variable anterior).

Todo este proceso funciona perfectamente, el problema es con el famoso botón "Atrás", cuando presiono el botón "Atrás" se produce algo bastante extraño:

En (1) se genera la sql efectivamente y se guarda en la variable de sesión sql_funct, todo bien salvo que en (3), donde se rescata esa variable, sql_funct contiene la sql generada en (4) y no en (1), por lo tanto el resultado es desastrozo.

No tengo muy claro por qué se produce el problema, pienso que puede ser por que el navegador llama al ajax antes de que se ejecute el asp que modifica la variable de sesión, pero la verdad es solo una corazonada.

Entiendo que es un error bien particular, pero si alguien tiene alguna idea de lo que pueda estar ocurriendo, agradezco mucho su ayuda.


Saludos y gracias,

Rodrigo
  #2 (permalink)  
Antiguo 24/06/2008, 10:33
Avatar de Shiryu_Libra
Colaborador
 
Fecha de Ingreso: febrero-2007
Ubicación: Cantando "Screenager" en "Kirafa Kaput"
Mensajes: 3.614
Antigüedad: 18 años, 1 mes
Puntos: 88
Respuesta: Problema con javascript y sesiones ASP

buen descriptivo del problema, pero ahora describe el codigo por favor (no miro codigo)
__________________
"Eres parte del problema, parte de la solucion o parte del paisaje"
Un Saludo desde Desierto de Altar, Sonora, MX.
Shiryu_libra
  #3 (permalink)  
Antiguo 24/06/2008, 12:18
 
Fecha de Ingreso: agosto-2004
Mensajes: 131
Antigüedad: 20 años, 8 meses
Puntos: 2
Respuesta: Problema con javascript y sesiones ASP

Cita:
Iniciado por Shiryu_Libra Ver Mensaje
buen descriptivo del problema, pero ahora describe el codigo por favor (no miro codigo)
OK, es que pense que meter codigo igual iba a ser mucho, ahi va

Recordemos que:

(1) = pagina asp que crea la grafica, genera la consulta sql y la guarda en sesion
** El sql ta feo pero es que no lo hice yo :D, y por ahora no es prioridad que quede lendo
Código:
<!--#include file="comunes/$template.asp"-->
<!--#include file="comunes/$funcionesControl.asp"-->
<%
if Session("control")="" then
	Response.Redirect "sesion_terminada_inc.asp"
end if
iniciaAdmin "Campus " & session("nombre_campus"), empty

sql = "SELECT Nombre, Descripcion, fecha_inicio, fecha_termino, id_capacitacion" _
	& " FROM tbl_Capacitacion, tbl_Curso" _
	& " WHERE tbl_Curso.ID_curso = tbl_Capacitacion.Id_curso" _
	& " AND tbl_Capacitacion.Id_empresa ="& session("ID_campus")
session("sql_funct") = sql

funcion = "generaLista" 
url = "comunes/$procesos.asp"

' ------------------------------------------------------------------------------------- 
' -------------------------------------------------------------------------------------  %>

<div id="div-contenido"></div>
<script language="javascript">obtieneHTML('<%=url%>', '<%=funcion%>', 'div-contenido');</script>
<input type="hidden" name="sql">
<input type="hidden" name="accion" /><% 

' ------------------------------------------------------------------------------------- 
' ------------------------------------------------------------------------------------- 

finalizaPagina
%>
(2) Funcion ajax (obtieneHTML) que llama al asp que despliega los datos, en mi caso utilizo la API Prototype

(3) Archivo que recibe la consulta sql desde sesión y despliega los datos

Código:
<!--#include file="$funcionesControl.asp"-->
<!--#include file="$template.asp"-->
<%
ejecutar = request("ejecutar")
select case ejecutar
case "generaLista":
	openDatabase myconn
	
	if ( rsOpen(rs, myconn, session("sql_funct")) ) then 
		tblRegistros = rs.getRows()
		'-----------------------------------------------------------
		'--- EJECUTO LA FUNCION PARA CREAR LA GRILLA
		'-----------------------------------------------------------
		generaLista tblRegistros
	else
		'--------------------------------------------------------------------------------------------------------
		'--- SI NO ENCONTRÓ DATOS ENTONCES MUESTRA LA CABECERA
	
'--------------------------------------------------------------------------------------------------------
		listaVacia
	end if
	rsClose(rs)
'------------------------------------------------------------------------
end select
%>
(4) Otra página que genera gráfica y genera una nueva consulta sql y la guarda en sesión. También llama a un ajax (5) que a su vez llama al aso que genera la lista (6), en realidad (6) y (3) son el mismo archivo, sólo le doy números diferentes para efectos de claridad.

Y eso seria, el problema está en que después de pasar a (4), cuando llamo a (1) con el botón "Atrás" en (3) se sigue tomando el sql creado en (4) y no el que corresponde que seria el creado en (1)

Saludos y muchas gracias por la ayuda,

Rodrigo
  #4 (permalink)  
Antiguo 24/06/2008, 13:01
Avatar de Shiryu_Libra
Colaborador
 
Fecha de Ingreso: febrero-2007
Ubicación: Cantando "Screenager" en "Kirafa Kaput"
Mensajes: 3.614
Antigüedad: 18 años, 1 mes
Puntos: 88
Respuesta: Problema con javascript y sesiones ASP

y eliminas lo que contiene la variable session.... y preguntas que no venga vacio para ejecutar un nueva sentencia, limpia???
__________________
"Eres parte del problema, parte de la solucion o parte del paisaje"
Un Saludo desde Desierto de Altar, Sonora, MX.
Shiryu_libra
  #5 (permalink)  
Antiguo 24/06/2008, 13:08
 
Fecha de Ingreso: agosto-2004
Mensajes: 131
Antigüedad: 20 años, 8 meses
Puntos: 2
Respuesta: Problema con javascript y sesiones ASP

Cita:
Iniciado por Shiryu_Libra Ver Mensaje
y eliminas lo que contiene la variable session.... y preguntas que no venga vacio para ejecutar un nueva sentencia, limpia???
Sip, miraba efectivamente que la variable estuviera vacía y tmb eliminaba lo que contenia la variable, pero la explicación es como "una vez que pasas a (4), cuando vuelves a (1) con la tecla Atrás, lo que ocurre en (4) no afecta a (1) pero sí a (3)"

Bueno, el tema es que no le pude dar solución así que creé una forma distinta de trabajar y ahora funciona bien, sin necesidad de usar variables de sesión. No lo explico a menos que quieran por que tendria que explicar la estructura del sistema y me da un poco de lata :D

Bueno, si alguien quiere me doy el trabajo de explicarlo de todas formas, luego me avisan

Saludos y gracias por todo

Rodrigo
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 04:41.