| |
[ 30. June 2000]
- Jany_Masaryk
Response.Buffer a jeho využitie
Vlastnosť Buffer určuje, či sa obsah ASP stránky najprv celý vykoná (hodnota True) a až potom sa začne
posielať prehliadaču, alebo či server začne posielať dáta okamžite pri vytvorení prvého riadku HTML
(hodnota False).
Východzia hodnota je nastavená na False.
Príklad použitia
<%@ Language=VBScript %>
<%Response.Buffer = True%>
<HTML>
<HEAD>
<title>Test Buffer </TITLE>
</HEAD>
<BODY>
<%
for i =1 to 100
Response.Write(i & "<BR>")
for j = 100 to 1000000
next
next
%>
</BODY>
</HTML>
Skúste si tento súbor spustiť na Vašom webovskom serveri. Prvýkrát spustíme súbor s direktívou True.
Vidíme, že sa nám pomerne dlhú dobu nič nezobrazuje a potom sa náhle zobrazí celá stránka. Pri použití
hodnoty False sa stránka zobrazuje postupne po riadkoch.
Všimnime si však výkonnosť.
True |
False |
10 s |
1 min 13 s |
Ako je vidno z tabuľky je tu významný rozdiel v rýchlosti spracovania. Nebudem tu uvádzať parametre môjho
stroja, keďže si rovnaké merania môže spraviť jednoducho každý z Vás.
Spôsoby nastavenia
Existujú dva spôsoby nastavenia Bufferingu.
Prvý je nastavenie v Microsoft Internet Information Serveri (MS IIS),
ktorým môžeme nastaviť Buffer vlastnosť pre celý web.
V Microsoft Management Console vyvoláme pravým tlačítkom myši "Properties" daného webu. Zvolíme záložku
"Home Directory" a stlačíme "Configuration ...". V novom okne vyberieme záložku "App Options" a tam už nájdeme
zaškrtávacie tlačítko "Enable Buffering".
Druhým spôsobom je nastavenie na stránke, tak ako to
je uvedené v našom príklade. V prípade, že sa líšia nastavenia na stránka s
nastavením v MS IIS, má nastavenie na stránke vyššiu prioritu.
Upozornenia
- vlastnosť Buffer musí byť určená pred vygenerovaním tagu <HTML>
- ak je vlastnosť Buffer nastavená na True a skript nevolá metódu "Flash", potom webovský server vyhovuje požiadavke
na udrženie spojenia (Keep-Alive)
- ak je vlastnosť Buffer nastavená na False alebo skript volá metódu "Flash", potom webovský server
pri každej žiadosti vytvára nové pripojenie
Záver - Výhody a nevýhody používania Response.Buffer
Výhody použitia (True) |
Nevýhody použitia (False) |
- zrýchlenie vykonávania ASP stránok
- v prípade, že klient má pomalé spojenie, server nečaká na jeho odozvu po krokoch ale posiela stránku "naraz"
|
- pri zložitejšej stránke uživateľ dlho nevidí výsledok, čo ho môže viesť k opätovnému Refresh
čím sa zahlcuje Server
|
Ako teda z daného záverečného prehľadu vyplýva aj tu platí zlatá stredná cesta. Na otázku či vlastnosť Buffer
používať a či nie sa rozhodujeme podľa toho ako zložité máme skripty a podľa toho aké dobré spojenie majú naši
uživatelia a ako sú trpezliví.
Ešte jedno šalamúnske riešenie na záver
Pomocou tohoto skriptu umožníme vykonanie stránky naraz a pritom uživateľa poprosíme
o chviľku trpezlivosti.
<%@ Language=VBScript %>
<%Response.Buffer = True%>
<%Response.Expires = 0%>
<html>
<head>
<meta content="SWH, SWH-KB, menu" name="keywords">
<meta content="Jan Masaryk" name="Author">
</head>
<body onLoad='WinOnload()'>
Prosím čakajte ...
<Script Language='JavaScript'>
function WinOnload()
{
location.href = 'UserListNameBuffer_sk.asp';
}
</Script>
</body>
</html>
Daný skript totiž zobrazí text "Prosím čakajte ..." a načítava ASP stránku. Po jej načítaní sa presmeruje
na túto stránku a keďže stránka je už načítaná tak sa rovno zobrazí. Milé riešenie, no nie ?
|
|
| |
|
"Response.Buffer a jeho využitie" | Login / vytvor konto | 0 Komentárov |
|
Za obsah komentárov je zodpovedný užívateľ, nie prevádzkovateľ týchto stránok. |
|