webForumDet fria alternativet

Response.Delay?

9 svar · 714 visningar · startad av Donatello

DonatelloMedlem sedan jan. 2005108 inlägg
#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... :)

BaltizMedlem 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)

m_soderlundMedlem sedan sep. 20026 425 inlägg
#3

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

DonatelloMedlem 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. :)

nordizMedlem 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

fredrikMedlem 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?

@ndersMedlem sedan juni 200032 969 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.

MengMedlem 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
@ndersMedlem sedan juni 200032 969 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?

OveRRidEMedlem 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.

124 ms totalt · 3 externa anrop · v20260731065814-full.30151723
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
122 ms — hämta tråd, inlägg och bilagor (db)