Aspirant Got Pappa Lid | De toekomst is niet meer wat het geweest is...
Je beantwoordt je eigen vraag al4of9 schreef op vrijdag 11 februari 2005 @ 11:35:
<knip>simpel te testen door een response.write voor de response.flush te plaatsen.
Heb ik gelijk?
Ik zie er verder overigens het nut niet van in: Je roept tegen de browser dat 'ie maar een andere pagina moet gaan ophalen, en daarna stuur je nog een bult data die de browser toch negeert omdat 'ie een andere pagina is gaan opvragen....Of je dat nou flushed of niet, who cares?
Bij mijn weten wordt code na een .redirect WEL nog uitgevoerd, je stuurt immers gewoon HTTP-headers naar de browser die 'm vertellen dat 'ie z'n heil maar ergens anders moet gaan zoeken. Dat wil niet zeggen dat je server-side niet gewoon kunt doorgaan met executen. Het heeft alleen zo weinig nut nog iets naar de browser te sturen. Maar als je na de .redirect nog dingen in je DB gaat zitten frotten ofzo, dan is het andere koek.
Kijk ook eens naar .Transfer.
[ Voor 78% gewijzigd door RobIII op 11-02-2005 11:47 ]
There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.
Je eigen tweaker.me redirect
Over mij
Het is ook niet de bedoeling om nog code uit te gaan voeren, maar ik wil gewoon weten hoe het nu werkt in de praktijk.
Aspirant Got Pappa Lid | De toekomst is niet meer wat het geweest is...
Een .Flush stuur je als je Response.Buffer = True hebt staan. Dan dien je "handmatig" de buffer te flushen of te wachten tot de hele page ge-execute is.4of9 schreef op vrijdag 11 februari 2005 @ 11:57:
Mijn probleem is dat ik nog nooit ergens gezien of gelezen heb dat je een flush en een end na een redirect moet doen laat staan dat je code uit gaat (kan) voeren.
Het is ook niet de bedoeling om nog code uit te gaan voeren, maar ik wil gewoon weten hoe het nu werkt in de praktijk.
Zie ook: http://www.w3schools.com/asp/met_flush.asp of http://www.15seconds.com/issue/010220.htmThe server will not send output until all of the scripts on the page have been processed, or until the Flush or End method has been called.
[ Voor 22% gewijzigd door RobIII op 11-02-2005 12:04 ]
There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.
Je eigen tweaker.me redirect
Over mij
Dat is natuurlijk onzin, waarom zou je geen code meer uit mogen voeren na een redirect? Een client heeft natuurlijk niets te maken met jouw code, en als jij besluit na een redirect nog wat code uit te voeren dan is dat jouw keuze. Misschien dat er nog het een en ander aan opruimwerk moet gebeuren, of zijn er nog andere dingen die nog even af moeten.4of9 schreef op vrijdag 11 februari 2005 @ 11:57:
laat staan dat je code uit gaat (kan) voeren.
Het is ook niet de bedoeling om nog code uit te gaan voeren, maar ik wil gewoon weten hoe het nu werkt in de praktijk.
Output sturen na een redirect is een heel ander verhaal, want waarom zou je dat doen als dat toch genegeerd gaat worden. Of het "fout" is laat ik in het midden, maar waarom zou je de client moeten laten wachten op iets waarin ie toch niet geinteresseerd is? Het is dus wel zo netjes om gewoon geen output meer te sturen.
Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.
Aspirant Got Pappa Lid | De toekomst is niet meer wat het geweest is...
1
2
3
4
5
6
7
8
9
10
11
| <% If request.querystring("redirect") <> "" Then response.redirect request.querystring("redirect") End If Dim fso, a Set fso = Server.CreateObject("Scripting.FileSystemObject") Set a = fso.CreateTextFile("testfile.txt", True) a.WriteLine("This is a test.") a.Close %> |
Indien je aan de redirect var een URL meegeeft blijkt dat de testfile.txt niet wordt aangemaakt. Alleen erg verwarrend dat hier niets over te vinden is in de MSDN docs bij response.redirect.
It’s nice to be important but it’s more important to be nice