webForumDet fria alternativet

Får inte Response.Flush att funka som det ska

ASP

6 svar · 284 visningar · startad av Maister

Medlem sedan juli 200165 inlägg
Frågan#1

Response.Buffer = True

Response.Write("Klockan är nu " & Time)
Response.Write("<BR>")
Response.Flush

For i = 1 to 5000000
i = i + 1
Next

Response.Write("Klockan är nu " & Time)

Som ett exempel bara, så får jag inte ovanstående att funka som det ska. Den kör några sekunder och sedan visar den båda "Klockan är nu..." raderna samtidigt. Altså, den visar inte första klockan raden, kör loopen, och sedan andra, som det igentligen ska göra

Har sökt igenom gamla inlägg men inte hittat någon lösning. Jag kör med IE6, och jag har för mig det fanns ett inlägg där någon skrev att det funkade på IE5.5, men en annan med IE6 fick det inte att funka.

Någon som har en lösning på problemet?

Mvh Maister

Medlem sedan mars 20021 889 inlägg
#2

Skriver de två första raderna?
Detta borde hända:

Klockan är nu <datum>
<BR>
skrivs ut och sedan står det "still" eftersom det tar tid att loopa en variabel 5000000 ggr.
:)

Medlem sedan juli 200165 inlägg
#3

Sorry, förklarade lite fel :e
Menade att båda "Klockan är nu" rader visas samtidigt, och inte med pausen emellan, iom loopen.

Har editerat inlägget nu, så jag hoppas alla förstår nu vad jag syftar på. ;)

Medlem sedan mars 20015 287 inlägg
#4

Får du alltså samma klockslag?

Jag får:

Klockan är nu 15:45:58
Klockan är nu 15:46:15

Givetvis(!?!) visas de samtidigt.

Medlem sedan juli 200165 inlägg
#5

Nä, jag får inte samma klockslag. De är ok.

Givetvis(!?!) visas de samtidigt.

Kanske är jag som förklarar fel. Altså, Flush gör ska väl göra att de 2 första response.write med klockan och <br> ska skickas till användare, så han får se dem, innan den kör loopen? Och sedan när den är klar med loopen så visas den sista response.write med klockan. Altså ska det vara en fördröjning/paus mellan dem. För mig verkar det som den kör loopen utan att visa de två första response.write med klockan och <br>. De kommer upp samtidigt med den sista response.write.

Jag hoppas ni fattar vad jag menar nu. :e

Medlem sedan mars 20015 287 inlägg
#6

Fel av mig, du har rätt...

Medlem sedan juli 200165 inlägg
#7

Efter en hel del experiment så hittade jag problemet. Dock gillar jag inte det. Det verkar som om man har för lite tecken, så funkar inte flush. Jag ersatte den första "Klockan är nu..." utskriften med runt 215 st tecken, och då funkade det som det skulle. Altså måste bufferten komma upp i ett visst antal tecken för att den ska flush:a innan den kört igenom all kod.

267 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
121 ms — deklarationer (db)
0 ms — hämta statistik (cache)
138 ms — hämta tråd, inlägg och bilagor (db)
127 ms — ändringar (db)