webForumDet fria alternativet

response.buffer?

20 svar · 453 visningar · startad av qwerty

qwertyMedlem sedan jan. 2001391 inlägg
#1

Exakt vad gör denna rad?

<% response.buffer = true %>

Tack p f-hand

------------------
Qwerty

Den som provar han testar...

Andreas LMedlem sedan sep. 2000214 inlägg
#2

Den säger till att hela sidan skall processas innan någon information skickas till webläsaren.

------------------
"Life's a bitch who sucks... then you marry one who doesn't"

emissionMedlem sedan dec. 19996 095 inlägg
#3

Det gör att allt innehåll som skrivs ut till till response-objektet buffras, och skickas till klienten för när körningen kommit till slutet på sidan, eller om metoden response.flush körs.

Med response.buffer=false skrivs innehållet ut allt eftersom.

qwertyMedlem sedan jan. 2001391 inlägg
#4

...och om jag inte har denna raden överhuvud taget? Skulle det kunna orsaka att sidan aldrig laddas in, utan bara står och "tuggar"?

------------------
Qwerty

Den som provar han testar...

VideMedlem sedan dec. 19996 094 inlägg
#5

Nä, då är det fel på din kod (om den inte är gjord så att den skall stå och tugga... :))

I ASP 2.0 så är buffer default satt på false och i ASP 3.0 så är den default satt på true...

------------------
Nu har du sjungit på sista refrängen
Jourhavande Vide

RossifumiMedlem sedan okt. 20001 208 inlägg
#6

Men ifall jag vill skriva ut en av mina c:a 600 rader med en response.write så måste jag ju ha den satt till "True". Men då måste ju hela sidan laddas innan den visas, kan man inte undgå detta?

------------------
"I have to return some video tapes" - Patrick Bateman, American Psycho

emissionMedlem sedan dec. 19996 095 inlägg
#7

Nu hängde jag inte med. Är inte response.buffer=false det du vill ha?

RossifumiMedlem sedan okt. 20001 208 inlägg
#8

Nja, för jag måste ju ha Response.Buffer = "True" högst upp för att kunna använda Response.Write i koden, eller? Men ifall min Response.Write ligger på rad 20 av 600 så tyckte jag att den kanske var onödigt att den var tvungen att ladda hela sidan innan den visades? Eller är det jag som har fått hjärnsläpp?

------------------
"I have to return some video tapes" - Patrick Bateman, American Psycho

@ndersMedlem sedan juni 200026 914 inlägg
#9

du har nog fått lite släpp... ;)

användandet av response.write går lika bra oberoende av om buffer är true eller false. däremot är det vissa av response-objektets metoder man inte kan använda sig av om buffer=false, exempelvis end och flush. response.redirect får dock användas, under förutsättning att ingenting ännu skrivits till klientens webbläsare.

------------------
<A HREF="http://cartman.nu" TARGET=_blank>
if i'm not back in five minutes, just wait longer.</A>

JEMedlem sedan juni 2000144 inlägg
#10

Rossifumi: Då kan du använda dig av Response.Flush.
Med det säger man till servern att skriva ut allt som har bearbetas fram till att Response.Flush

Är inte allt för bra på att förklara saker och ting men jag försöker mej på ett exempel :)
Låt säga att vi har gjort ett litet webbgränssnitt för att kolla sin mailbox. Vi har 600(!?) mail i inboxen.
Beroende på kodningen kanske det tar ett litet tag att lista alla 600 mail på sidan. Så istället för att bara visa en vit sida som laddas i 10 sekunder kan man skriva ut att det finns 600 mail i inboxen och sedan ladda vidare på sidan, då kanske det går upp ett litet ljus för användaren "Aha, 600 mail...det kanske tar ett par sekunder att ladda" eller liknande :)

Man börjar sidan med

Response.Buffer = True

Sedan skriver man ut antalet mail i inboxen:

response.write intAntalMail

För att sedan få det att visas på sidan direkt använder vi Flush...

Response.Flush

Sedan fortsätter vi med att skriva ut rubriken på alla mail i inboxen men det skrivs inte ut förens hela sidan är laddad

For i = 1 To intAntalMail
response.write Rubrik
Next

------------------
/JE

RossifumiMedlem sedan okt. 20001 208 inlägg
#11

Aha... jag måste dock ha värdet till true, annars får jag HTTP Headern har... hela tiden. Beror nog på mina cookies :) Tack för svaren

------------------
"I have to return some video tapes" - Patrick Bateman, American Psycho

VideMedlem sedan dec. 19996 094 inlägg
#12

Kuriosa: Varför vill du skriva något till klienten och sedan redirecta denna... personen kommer ju ändå inte se meddelandet!?

------------------
Nu har du sjungit på sista refrängen
Jourhavande Vide

RossifumiMedlem sedan okt. 20001 208 inlägg
#13

Frågar du mig? Jag har inte kört någon redirect...

------------------
"I have to return some video tapes" - Patrick Bateman, American Psycho

VideMedlem sedan dec. 19996 094 inlägg
#14

... och då finns det väl ingen anledning att köra Response.buffer = true... ;)

------------------
Nu har du sjungit på sista refrängen
Jourhavande Vide

RossifumiMedlem sedan okt. 20001 208 inlägg
#15

Jo, annars klagar den när jag sätter cookien :q

------------------
"I have to return some video tapes" - Patrick Bateman, American Psycho

@ndersMedlem sedan juni 200026 914 inlägg
#16

vilket är helt rätt, eftersom för att sätta en cookie måste du modifiera http-headern, och det får du inte göra om du inte buffrar. :)

------------------
<A HREF="http://cartman.nu" TARGET=_blank>
if i'm not back in five minutes, just wait longer.</A>

VideMedlem sedan dec. 19996 094 inlägg
#17

*Oj, ett hörn... där ställer jag mig* :e

------------------
Nu har du sjungit på sista refrängen
Jourhavande Vide

RossifumiMedlem sedan okt. 20001 208 inlägg
#18

Ha ;)

------------------
"I have to return some video tapes" - Patrick Bateman, American Psycho

[Redigerat av Rossifumi den 30 jan 2001]

qwertyMedlem sedan jan. 2001391 inlägg
#19

...???
Trodde verkligen att en viss person kunde allt. Men även den bäste kan välta en blind tuva ibland.

------------------
Qwerty

Den som provar han testar...

MMatsMedlem sedan sep. 200061 inlägg
#20

Det finns en annan fördel med response.buffer=true och det är att det går snabbare att skriva ut sidan. Kolla på http://www.learnasp.com/learn

Genererad på 376 ms · cache AV · v20260730165559-full.f96bc7eb