webForumDet fria alternativet
Logga in / Bli medlem

Response.Delay?

ASP

9 svar · 716 visningar · startad av Donatello

Medlem sedan jan. 2005108 inlägg
Trådstart#1

Finns det något sätt i asp som resulterar i t.ex. Response.Delay = 5000 (Som då skulle innebära stoppa exekveraren i fem sekunder och fortsätt sedan)

Anledningen till att jag frågar är att jag vill kunna flusha ut data i kontrollerade ettapper.

<%
'Lite kod
Response.Flush
'Ännu mer kod
Response.Delay = 5000
Response.Flush
%>

Tacksam för svar... :)

Medlem sedan maj 200591 inlägg
#2

Tror att det är enklast att göra genom javascript och dhtml. Finns ingen funktion i ASP som gör något liknande (förutom att skapa nån sorts loop som kollar vad klockan är eller liknande, men det är ju en ganska korkad metod)

Medlem sedan sep. 20026 425 inlägg
#3

Kanske denna tråd ger något: Delay på Response.Redirect

Medlem sedan jan. 2005108 inlägg
#4

Baltiz: Låter som rena rama hang-me funktionen till servern. Han lär nog nästan hinna kolla klockan varje millisekund, medan han har noll kapacitet att göra annat. Håller fullständigt med. Kooorkat. :P

m_soderlund: Inte riktigt vad jag tänkt mig, men... Tjaa.. Får fundera lite.

Tack iaf, grabbar. :)

Medlem sedan maj 200027 inlägg
#5

Ett bra förslag är att bygga en egen com-component som innehåller enbart en sleepfunktion,

Komponenten skulle bara behöva innehålla föjande:
-------------------------
Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)

Public Sub doSleep(lTime As Long)
Sleep lTime
End Sub
--------------------------

Jag slände ihop den komponenten och du kan ladda hem den och använda den från http://www.airtimestudio.se/extras/sleep.zip

1: Packa upp den och registrera den i komponenthanteraren

2: Gör följande i ditt asp-script:

Set oSleep = server.createobject("nordizcode.sleep")
oSleep.doSleep 500

(tiden 500 är 500ms).

//Johan

Medlem sedan dec. 19991 072 inlägg
#6

Hmm....är det inte så att en "sleep" stoppar hela IISen och inte bara den aktuella tråden/sajten?

Medlem sedan juni 200032 967 inlägg
#7

fredrik skrev:

Hmm....är det inte så att en "sleep" stoppar hela IISen och inte bara den aktuella tråden/sajten?

Nej, det har varken med "sajt" eller IIS att göra. Endast den aktuella programexekveringen påverkas.

Medlem sedan feb. 2003549 inlägg
#8

Detta hjälpte inte mig så mycket för inget blir utskrivit till skärmen. Det funkar och den utför alla handlingar men jag får aldrig det visat.. någon som kan hjälpa mig förstå varför?

'// Ta bort alla genvägar också
Set oSleep = server.createobject("nordizcode.sleep")
Set SInfo = Conn.Execute("SELECT * FROM afdelinger Where CLng(id) = '" & Request.Querystring("id") & "'")
	Set Genvej = Conn.Execute	("SELECT * FROM genveje Where CLng(DepartNr) = '" & CLng(SInfo("DepartNr")) & "'")
		Do While Not Genvej.EOF
			Response.Write "Sletter genvej: <b>" & Genvej("UrlName") & "</b>"
			Conn.Execute("Delete From genveje Where id="& Genvej("id")),,128
			oSleep.doSleep 500
		Genvej.MoveNext
		Loop
	Genvej.Close
SInfo.Close
Medlem sedan juni 200032 967 inlägg
#9

Det känns som att du saknar Response.Flush, det har du ju med i ditt originalinlägg. Kanske kunde passa strax innan du kör sleep?

Medlem sedan feb. 200112 078 inlägg
#10

Meng > Min fråga till dig är; varför i hela världen vill du göra så? Det kan väl ändå inte finnas den minsta tillräckligt motiverande anledning att på det sätt som du gör, göra din kod långsam? Om det nu är någon slags "progress bar" du är ute efter, tänk om. Det där är bara vansinnigt.

Ingen eftersträvar en slöare exekvering av ett anrop, oavsett hur fin din statusrapportering / progress bar är.

/red. Dessutom kan du ta bort en av dina recordset's och göra en JOIN mellan tabellen och ditt querystringvärde.

263 ms totalt · 4 externa anrop · v20260731065814-full.81e7e81c
122 ms — deklarationer (db)
0 ms — hämta statistik (cache)
131 ms — hämta tråd, inlägg och bilagor (db)
128 ms — ändringar (db)