May 16, 2001
Jag vill att min asp-sida ska hoppa till en annan sida om ett visst villkor uppfylls.
Jag använder då:
---------
Response.Redirect("minsida.asp")
---------
Problemet är bara att den kör denna kod först av allt, och då måste man tydligen använda sig av:
----------
Response.Buffer[=TRUE]
----------
...för att all script ska laddas innan själva sidan laddas upp.
Tydligen ska man lägga den koden först i asp-sidan (vet inte riktigt var - kanske före taggen?), men varje gång jag testar får jag följande felmeddelande:
---------
Körningsfel i Microsoft VBScript fel '800a01c3'
Objektet måste vara en mängd.: 'Buffer'
---------
Va fäääääääään menas????
Är det nån som vet EXAKT var Response.Buffer[=True] ska ligga, och om det ens är rätt kod?
July 28, 2001
"Response.Buffer = True" är till för att all text skall sammlas upp i en buffert tills sidan är färdigexekverad och sedan skicka det till klienten. På en IIS5-server så är detta default och behöver således inte anges.
Skulle du ange "false" som värde så skulle vare textbit skickas direkt till klienten och således kommer klienten att få lite info i taget. För en seg uppkoppling kan detta vara till fördel.
Vid en redirect är det inte alldeles nödvändigt att har "Response.Buffer = True", detta är endast om du redan har skickat info till klienten. Det är om du försöker att skriva om Headern som du redan skickat kommer det att bli fel.
Alltså:
Kör du en redirect efter det att du skickat info till klienten så skall du använda "Response.Buffer = True" före något skickats. Men kom då ihåg att du kör igenom hela sidan, vilket är i sig lite onödigt, därför bör du direkt efter din redirect skriva:
Response.End
Detta gör att scriptet slutar tolkas och din redirect kan köras direkt...
Ursäkta det långa inlägget, men jag kände att jag behövde klargöra vad som egentligen händer.
Mvh, Vide
2 Guest(s)