[ASP] Een sub asynchroon aanroepen

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • Polderdijk
  • Registratie: December 2001
  • Laatst online: 09-09 13:49
Om gebruikers van een applicatie meer inzicht te geven in de status van bepaalde zaken ben ik op een probleem gekomen.
Als bezoekers bepaalde zaken willen regelen heb ik een script gemaakt die redelijk zware, en in ieder geval taken uitvoeren die zeker enkele tientallen seconde duren. Dit gaat allemaal goed en geeft geen problemen.

Echter wat het probleem met zulke langdurige scripts zijn, dat de bezoeker totaal niet weet waarop hij staat te wachten, sommige taken worden in vele stukjes opgesplitst.

Nu had ik gedacht dat ik een soort stappenplan aan de bezoeker laat weergeven met daarop alle te nemen stappen, en via een AJAX request onderwater gaat kijken welke stappen er al voltooid zijn, en dit middels groene vinkjes weer te geven. De voltooide data wordt in een MSSQL database bijgehouden, en dus gewoon opvraagbaar.
Ook dit is dus geen enkel probleem.

Echter is het probleem dat ik via ASP een actie wil starten, maar dat het script hier niet op gaat wachten, maar gewoon direct doorgaat en de volledige 'wacht' pagina toont.
Daarna kan er ook een AJAX scriptje data ophalen over de status van de aanvraag en de voltooide stappen groenvinken.
Nu kan ik wel d.m.v. Response.Flush brokken data versturen naar de browser, echter kan er dan geen nieuwe (ajax)request naar de webserver gezonden worden, omdat er maar 1 request tegelijk kan lopen.

Echter krijg ik het idee dat er helemaal geen mogelijkheid binnen ASP/VBScript is om een Sub of Function aan te roepen, zonder dat het script op antwoord staat te wachten. Heeft iemand enig idee hoe ik 'iets' in werking kan zetten (dit kan zowel een MSSQL request als een standaard ASP request zijn), maar dat er met de huidige sessie gewoon doorgegaan kan worden?

Webhosting van SkyHost.nl: 25 Mb / 1 Gb windows hosting € 4,50 p/m excl.btw!


Acties:
  • 0 Henk 'm!

  • CodeCaster
  • Registratie: Juni 2003
  • Niet online

CodeCaster

Can I get uhm...

Je kan de intensieve taak overlaten aan een script wat niet verantwoordelijk is voor het uitvoeren van je html, hier zijn legio manieren voor, maar wat voor ASP de best practice is weet ik niet. Met PHP wordt dit bijvoorbeeld vaak met behulp van cron gedaan, waarbij een taak die op de server draait iedere X seconden, minuten, uren, dagen, of wat dan ook kijkt of er nog iets uitgevoerd moet worden. Deze taak houdt zijn status dan bijvoorbeeld bij in een database, die jij aan de gebruikerskant weer kunt pollen middels AJAX. :)

Ik vind bijvoorbeeld deze als ik [google=asp cron equivalent].

[ Voor 13% gewijzigd door CodeCaster op 16-03-2011 19:43 ]

https://oneerlijkewoz.nl
Op papier is hij aan het tekenen, maar in de praktijk...