Hlavná stránka · Diskusné Fórum · Pracovné príležitosti · Zoznam

 Main Menu
o Hlavná stránka
o Zoznam tém
o Zoznam
o Odporučte nás
o Užívatelia
o Vaše konto
o Pridaj článok
o Štatistiky
o Top 10

 Reklama


 Developer Zone's
o Internet
o Tools
o Linux
o CGI Zone
o ASP Zone
o ASP.net
o PHP Zone
o CSS Zone
o JavaScript
o MySQL
o WAP / WML
o WML / WMLScript
o XML / XHTML
o Tipy a triky
o Best of web
o WebServers
o WebDesign
o Grafika

 Servis
o Vyhľadávanie
o Fórum
o Workoffice
o Zoznam článkov
o Reklama
o Pridaj článok
o Pridaj novinku

Napíšte nám
Homepage Do favoritov

 LinkExpres
Interval.cz · Pc.sk
Builder.cz · Mobilmania
PCSvet.cz · Asp.cz
Webdnes · Živě.sk
Zoznam.sk · Atlas.sk
Inzine.sk · PHP.sk
Agent.sk · Lupa.cz
Code.box.sk · Root.cz
Pixel32 · Grafika.cz

 forum.developer.sk
o Fórum ::
o Markup languages
o Scriptové jazyky
o CGI
o PHP/MySQL
o Perl
o Grafika
o Webservery
o HTML Editory
o Browsery
o Bookmarx
o ASP
o Vytvor tému ::

 Pracovné príležitosti
o Ponúkate prácu?
o Hľadáte prácu?

 Autori developer.sk
o Martin Nemeček
o Sväťo Straka
o Jany Masaryk
o Jozef Murín

 
Tipy a Triky [ 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 ?

 
 Príslušné odkazy k téme
Viac o téme: Tipy a Triky | Iné články od: Admin | Pošli komentár | Stránka vhodná na tlač width=15 height=11  Pošli tento článok priateľovi, známemu width=15 height=11


Najčítanejšie články Tipy a Triky:
JavasScript: Blokovanie prístupu na stránku v závislosti od IP adresy

Ďalšie články v rubrike Tipy a Triky:

 

"Response.Buffer a jeho využitie" | Login / vytvor konto | 0 Komentárov
Prah
Za obsah komentárov je zodpovedný užívateľ, nie prevádzkovateľ týchto stránok.



Autorské práva:   ©1999 - 2001 Developer Zone [developer@developer.sk]

Všetky články sú vlastníctvom autorov Developer Zone. Všetky práva vyhradené. Stránky Developer.sk sú vytvorené pomocou PHP-Nuke.
Odkazy na nové články je možné preberať pomocou:Backend.php.