Hola a todos, les paso a explicar mi problema: Tengo que generar un reporte en pdf mediante ASP. La empresa tiene un componente para generar los pdfs y funciona perfecto el tema es que el reporte es excesivamente largo por lo que me genera un timeout al intentar hacerlo y por la naturaleza del componente solo se puede mostrar los resultados cuando todo el proceso de creacion del PDF esta hecho, mas especificamente, solo se muestran los resultados cuando se usa la funcion closePDF(objetoPDF)
Las soluciones que he intentado fueron las siguientes:
1. Pagina con un iFrame (donde se mostrara el PDF) y una funcion javaScript que pregunta si el iFrame ya termino de cargar, de no hacerlo, hace una llamada a la misma pagina del reporte (mediante ajax) pero con un parametro para extender el tiempo del timeout de la session.
Problema de esta solucion: se queda dando vueltas en el ciclo while
Código Javascript
:
Ver originalfunction comprobarFin(){
var hora1 = new Date();
var hora2 = new Date();
if ( document.getElementById("iframePDF").contentWindow.document.readyState == 'complete' ) {
}else{
while (document.getElementById("iframePDF").contentWindow.document.readyState != 'complete'){
hora1 = new Date();
if (Math.floor((hora1-hora2)/1000)>=5){
ch.bind("printBatch.asp?accion=TIEMPO","callback()");
ch.send();
hora2 = new Date();
}
}
}
}
y el browser que uso (firefox) me dice que el script pudo haberse quedado colgado.
2- He intentado separar el proceso de comprobacion de la pagina donde se mostrara el PDF (tambien llamado mediante ajax) pero el proceso no parece estar funcionando ya que me tira timeout
Código ASP:
Ver original<%
Dim fecha1,fecha2
fecha1 = now()
fecha2 = now()
while Session("printbatch") <> "CARGANDO"
fecha1 = now()
if DateDiff("s",fecha1,fecha2) => 50 then
Session.Timeout = Session.Timeout + 1
fecha2 = now()
end if
wend
%>
Alguien tiene alguna sugerencia para poder ayudarme a resolver este problema? la idea no es setear un valor alto del timeout sino que ese valor se vaya adaptando dependiendo de la longitud del reporte
Saludos