Avatar billede skildpadden Nybegynder
26. marts 2003 - 17:28 Der er 28 kommentarer og
4 løsninger

redirect med timer

Er det muligt at lave en response.redirect så der går f.eks. 3 sek. før den redirecter?
Avatar billede mortrr Praktikant
26. marts 2003 - 17:32 #1
Nej.
Det skal ske "client-side".
Fx med
<meta http-equiv="refresh" content="3;url=nyside.htm">
i head.
Avatar billede oasen Nybegynder
26. marts 2003 - 17:32 #2
Ja, men det er nemmere at lave det med Javascript.
Avatar billede oasen Nybegynder
26. marts 2003 - 17:33 #3
Du kan bl.a. få en komponent til formålet.
Avatar billede skildpadden Nybegynder
26. marts 2003 - 17:34 #4
oasen: har du et link til dette?
Avatar billede skildpadden Nybegynder
26. marts 2003 - 17:36 #5
mortrr: problemet er at den først skal redirecte efter den har udført div. handlinger, disse tager forskellig tid, så jeg kan sætte den til at skifte efter f.eks. 3 sek., da den måske ikke er færdig her...
Avatar billede oasen Nybegynder
26. marts 2003 - 17:36 #6
Nej, desværre. Jeg så den bare ved et tilfælde på et tidspunkt. Den hedder noget alá "sleep..."
Avatar billede mortrr Praktikant
26. marts 2003 - 17:37 #7
Mener du udføre ting på serveren, eller i klienten?
Avatar billede oasen Nybegynder
26. marts 2003 - 17:38 #8
Du kan også bare bruge en onLoad:

<body onLoad="setTimeout('self.location.href = 'din_side.html';,' 5000);">
Avatar billede skildpadden Nybegynder
26. marts 2003 - 17:38 #9
på serveren... den skal gemme div. i database
Avatar billede oasen Nybegynder
26. marts 2003 - 17:38 #10
mortrr ---> Serverside
Avatar billede grunken Nybegynder
26. marts 2003 - 17:41 #11
man kan da sagtens lave det med ASP, om det er det mest optimale vil jeg så ikke svare på :)

her er et kort eksempel !

<%
StartTime = Timer()
EndTime = Timer()
WaitTime = EndTime - StartTime

do while WaitTime < 5
EndTime = Timer()
WaitTime = EndTime - StartTime
loop

Response.Redirect "page2.asp"
%>

-grunken
Avatar billede oasen Nybegynder
26. marts 2003 - 17:42 #12
Det er da alt for krævende...
Avatar billede grunken Nybegynder
26. marts 2003 - 17:43 #13
Jamen men lød spørgsmålet ikke på om det ku lade sig gøre ???
Avatar billede oasen Nybegynder
26. marts 2003 - 17:43 #14
Jo, det må jeg jo så give dig ret i :o)
Avatar billede grunken Nybegynder
26. marts 2003 - 17:44 #15
;p
Avatar billede mortrr Praktikant
26. marts 2003 - 17:45 #16
Avatar billede mortrr Praktikant
26. marts 2003 - 17:47 #17
Men, forresten  - du siger "gemme div i databasen".
Det plejer da at være synkront.
Avatar billede grunken Nybegynder
26. marts 2003 - 17:51 #18
Nej Oasen, jeg vil osse give dig ret i, at det er alt for krævende at lige lave serverside, men mit ovenstående eksempel, ville jo netop løse mandens problem med at han skal have udført nogle handlinger i vente tiden !

Hvofor han så ikke bare vælger at :

<%
alle hans handlinger
response.redirect("ting.asp")
%>

se det er så noget af det jeg heller ikke forstår *G*
Avatar billede hossein Nybegynder
26. marts 2003 - 20:07 #19
du kan lave en sub:

public sub sleep(tm)
    t = timer()
    while t + tm > timer()
        ' ikke noget her
    wend
end sub

også kalde den hvor du vil:
...
call sleep(.75)
...
Avatar billede mortrr Praktikant
26. marts 2003 - 21:20 #20
hossein -> det er da lidt synd for serveren.
Selv et tomt loop af den slags bruger processortid.
Avatar billede hossein Nybegynder
26. marts 2003 - 21:34 #21
motrr >> Rigtigt, du forslog et Komponent, han kan installere det på serveren hvis det er hans server?
hvornår kan man bruge Timer()?
Avatar billede mortrr Praktikant
26. marts 2003 - 21:49 #22
hossein -> Ja.

Timer giver antal sekunder siden midnat.

God hvis man vil finde ud af hvor lang tid et script tager at gennemløbe.
StartTid=Timer
LavNoget
ForbrugtTid=Timer-StartTid

Men egentligt ikke så meget mere.
Og så er den endda ikke så smart omkring midnat.
Avatar billede hossein Nybegynder
26. marts 2003 - 22:01 #23
Avatar billede mortrr Praktikant
26. marts 2003 - 22:07 #24
Den returnerer antal sekunder siden midnat.

Dvs hvis dit script starter 1 sekund før midnat, og slutter 1 sekund over...
Forbrugt tid: -86398 sekunder
(man skal selvfølgelig bare lige huske at tage højde for det og lægge 86400 til hvis den er negativ)
Avatar billede mortrr Praktikant
26. marts 2003 - 22:08 #25
(som 4guys... også skriver)
Avatar billede hossein Nybegynder
26. marts 2003 - 22:09 #26
Rigtig, så har vi løst problemet :)
Avatar billede mortrr Praktikant
26. marts 2003 - 22:11 #27
Problem?
Avatar billede mortrr Praktikant
26. marts 2003 - 22:12 #28
Der er da ikke noget der hedder et problem.

Det hedder en opgave!!
Avatar billede hossein Nybegynder
26. marts 2003 - 22:12 #29
så har vi svaret på hans spørgsmål! + at den er gratis
Avatar billede mortrr Praktikant
27. marts 2003 - 10:01 #30
hossein -> Beklager at måtte meddele det, men timer er altså ikke en specielt god løsning til problemet. Serveren vil stå og brænde cpu-tid af mens den venter på at tiden er gået.

Løsningen er en komponent (som fx den fra serverobjects) som decideret sleeper.
Avatar billede hossein Nybegynder
27. marts 2003 - 18:12 #31
Nej, det er det da en god løsning :)
Dit begrundelse med CPU er ikke godt nok! Det er klart at Jo mere funktioner, SQL, recordset osv. bruger man på sin side formindskes "Performance", kig på denne: http://www.askasp.com/articles.asp?ArtID=85
Avatar billede mortrr Praktikant
27. marts 2003 - 22:08 #32
Du skal ikke altid tro på hvad du læser.

Prøv at lave et lille script som:
<%@language=vbscript%><%
StartTime=Timer
Response.Write "<br>" & StartTime
do while Timer<StartTime+5
loop
Response.Write "<br>" & Timer
%>
Start Task Manager og hent så siden i browseren.
CPU Usage ryger op på 100% i 5 sekunder.
Det er da ikke specielt smart, vel. ;-)

Gør det samme med serverobjects WaitFor, og der vil ikke blive brugt noget cpu-kraft i de 5 sekunder.
(udover til hvad computeren ellers bruger)

Performance kan nogen gange være at gøre det på "den besværlige måde".
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester