Avatar billede henrikgn Nybegynder
31. maj 2004 - 14:59 Der er 10 kommentarer og
1 løsning

Response.Redirect med forsinkelse

Hej

Jeg skal sende den besøgende videre til en anden side efter 3 sekunder. Hvordan gøres dette i ASP.NET med VB.NET?

//hgn
Avatar billede cpufan Juniormester
31. maj 2004 - 16:25 #1
i head

... META HTTP-EQUIV=Refresh CONTENT="10; URL=http://www.htmlhelp.com/"> tells the browser
to load http://www.htmlhelp.com/ 10 seconds after the current document ...
Avatar billede henrikgn Nybegynder
31. maj 2004 - 22:31 #2
Den metode kender jeg godt... men jeg skulle gerne kunne bruge den i forbindelse med en sub... dvs.:

sub knapKlik(s as object, e as eventargs)
    'en masse kode...
    'Kode til videresendelse efter 3 sekunder
end sub

Dvs. således, at der efter tryk på knappen går 3 sekunder før den besøgende videresendes til den næste side. Kan det lade sig gøre?
Avatar billede lauge Nybegynder
31. maj 2004 - 22:42 #3
er det for at vise noget tekst til brugeren du vil have forsinkelse på?
Eller hvorfor vil du have forsinkelse??
Avatar billede nielsbrinch Nybegynder
31. maj 2004 - 23:34 #4
System.Threading.Thread.Sleep(3000);
Avatar billede henrikgn Nybegynder
01. juni 2004 - 11:54 #5
lauge --> Efter tryk på knappen ændres teksten i en label - som gerne skulle kunne ses INDEN siden skifter videre til næste side.

nielsbrinch --> Denne virker ikke helt efter hensigten.

Er der virkeligt ikke andre metoder? Kan man på en måde indsætte eller aktivere den meta-tag, som 'cpufan' skrev? Altså således at denne først aktiveres/indsættes når man trykker på knappen?
Avatar billede lauge Nybegynder
01. juni 2004 - 11:59 #6
du kan lave en JS funktion på siden, som du kan bruge som validering.
Når brugeren klikker på Submit knappen, så retunere funktionen først True efter et tidsinterval. Sådan cirka vil jeg gøre.

Men rent bruger messigt er det en dårlig løsning du er ude i - især hvis brugeren skal læse det. Hvem siger brugeren når at opfatte det på 3 sekunder? Lav dog en knap mere på den siden med din "hemmelige " tekst, som kun må vises 3 sekunder, og så lad brugeren se siden indtil han/hun klikker sig videre.
Avatar billede henrikgn Nybegynder
01. juni 2004 - 12:03 #7
Lyder fornuftigt, finder på en anden og bedre løsning. Thanks anyway.

/hgn
Avatar billede henrikgn Nybegynder
01. juni 2004 - 12:25 #8
Fandt en løsning...

Response.AppendHeader("Refresh", "10; URL=nextpage.aspx")

Fandt løsningen her: http://www.dotnetspider.com/Technology/KBPages/327.aspx
Avatar billede nielsbrinch Nybegynder
01. juni 2004 - 18:43 #9
Jeg kunne godt tænke mig at høre hvad der gik galt med min løsning.
Avatar billede henrikgn Nybegynder
02. juni 2004 - 13:13 #10
Hele siden gik i stå, dvs. den label jeg skrev til blev ikke udfyldt... Ved ikke om jeg gjorde det forkert?? :

sub btnKlik(s as object, e as eventargs)
  lblInfo.Text = "Du har klikket og bliver videresendt om 10 sekunder."
  System.Threading.Thread.Sleep(10000)
  Response.Redirect("nextpage.aspx")
end sub

lblInfo blev IKKE fyldt ud og siden sprang videre efter de ti sekunder. Denne metode virkede efter hensigten:

sub btnKlik(s as object, e as eventargs)
  lblInfo.Text = "Du har klikket og bliver videresendt om 10 sekunder."
  Response.AppendHeader("Refresh", "10; URL=nextpage.aspx")
end sub
Avatar billede nielsbrinch Nybegynder
02. juni 2004 - 18:24 #11
Ok. Tak for uddybelsen. Jeg kan godt se det selvfølgelig ikke vil have den ønskede effekt. Jeg antog at du satte din tekst med JavaScript, da din metode kræver et ekstra server-roundtrip.

Når du skifter teksten ud på din label, loader siden faktisk igen, men hvis du kører lokalt eller på en hurtig webserver, bemærker du det ikke. Men hvis du kører på en almindelig web server og din side er lidt tungere, vil du klart bemærke at siden genloader med en ny tekst på din label, hvorefter der selvfølgelig går 10 sekunder og du bliver ført videre.

Hvis du i stedet sætter din tekst med JavaScript og så bruger min metode, bliver siden slet ikke loadet unødvendigt. Det er at foretrække, både for performance og forbrug af ressourcer. Men det kræver selvfølgelig lidt ekstra fiks-fakserier, da det ikke kan laves udelukkende ved brug af .NET.
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
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

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