Buffer

(PWS4 IIS4 IIS5)
Buffer — ページ出力をバッファに格納するかどうかを示します。

Response.Buffer[= flag]
flag:ページ出力をバッファに格納するかどうかを指定します。次のいずれかの値を指定できます。

説明
FALSE バッファに格納しません。サーバーは出力を処理と同時にクライアントに送信します。IIS Version 4.0 以前では、これが既定値です。IIS Version 5.0 以降では、既定値は TRUE です。
TRUE サーバーは、現在のページの ASP スクリプトの処理がすべて完了するまで、あるいは Flush メソッドまたは End メソッドが呼び出されるまで、クライアントに出力を送信しません。

説明

Buffer プロパティは、ページ出力をバッファに格納するかどうかを示します。ページ出力がバッファに格納されると、サーバーは現在のページのサーバースクリプトの処理がすべて完了するまで、あるいは Flush メソッドまたは End メソッドが呼び出されるまで、クライアントに応答を送信しません。
Buffer プロパティは、サーバーがクライアントに出力を送信した後で設定することはできません。このため、Response.Buffer の呼び出しは、.asp ファイルの先頭行に記述してください。

現在の .asp ファイルのバッファ処理が TRUE に設定されている場合、Flush メソッドを呼び出さなければ、サーバーはクライアントからのキープアライブ要求を優先します。これにより、サーバーはクライアント要求ごとに新しい接続を作成する必要がなくなるため、動作が速くなります。
ただし、バッファ処理を行うと、サーバーが現在のページのスクリプト処理をすべて完了するまで、クライアントに応答が表示されなくなります。このため、長いスクリプトでは処理の遅れが目立つことがあります。
メタベース内の ASPBufferingOn プロパティを使用すると、スクリプトのバッファ処理の既定値を設定できます。メタベースの使い方の詳細については、「IIS Admin オブジェクトを使用する」を参照してください。

Flush、End も参照ください。


Cookies

(PWS4 IIS4 IIS5)
Cookies — このコレクションを使用して cookie の値を設定できます。

Response.Cookies( cookie )[( key )|.attribute] = value
cookie:cookie の名前です。
Key:省略可能なパラメータです。key を指定した場合、cookie は辞書とみなされ、key には value が設定されます。
attribute:cookie に関する情報を指定します。次のいずれかを属性パラメータに指定できます。

* Domain
* Expires
* HasKeys
* Path
* Secure

Value:key または attribute に割り当てる値を指定します。

説明

Cookies コレクションは cookie の値を設定します。指定された cookie が存在しない場合は、新しい cookie が作成されます。cookie が存在する場合は、新しい値を受け取り、古い値を破棄します。

例1.Cookiesの例

次のスクリプトのように、キーを付けて cookie を作成したとします。

1
2
3
4
<%
  Response.Cookies("mycookie")("type1") = "sugar"
  Response.Cookies("mycookie")("type2") = "ginger snap"
%>

すると、次のヘッダーが送信されます。

Set-Cookie:MYCOOKIE=TYPE1=sugar&TYPE2=ginger+snap

この後、キーを指定せずに myCookie への割り当てを行うと、type1 および type2 は破棄されます。この例を次に示します。

1
<% Response.Cookies("myCookie") = "chocolate chip" %>

この例で、type1 と type2 のキーおよびその値は破棄され、myCookie という cookie の値は chocolate chip になります。
逆に、キーを付けて cookie を呼び出すと、cookie に含まれているキー以外の値が破棄されます。たとえば、上のコードの後で次のように Response.Cookies を呼び出します。

1
<% Response.Cookies("myCookie")("newType") = "peanut butter" %>

すると、値 chocolate chip は破棄され、newType に peanut butter が設定されます。
cookie がキーを持っているかどうかを調べるには、次の構文を使います。

1
<%= Response.Cookies("myCookie").HasKeys %>

myCookie が cookie 辞書であれば前の値は TRUE に評価され、そうでなければ FALSE に評価されます。
ループを使用すると cookie の属性を設定できます。たとえば、すべての cookie の有効期限が特定の日付に切れるように設定するには、次の構文を使います。

1
2
3
4
5
<%
  For Each cookie in Response.Cookies
    Response.Cookies("cookie").Expires = #July 4, 1997#
  Next
%>

また、ループを使って、コレクション内のすべての cookie の値や、cookie 内のすべてのキーを設定することもできます。ただし、キーを持っていない cookie に対してはループが実行されません。これを防ぐには、.HasKeys の構文を使用して cookie がキーを持っているかどうかを先にチェックしておきます。以上の例を次に示します。

1
2
3
4
5
6
7
8
9
10
11
<%
  If Not Response.Cookies("cookie").HasKeys Then
    'Set the value of the cookie.
    Response.Cookies("cookie") = ""
  Else
    'Set the value for each key in the cookie collection.
    For Each key in Response.Cookies("cookie")
      Response.Cookies("cookie")(key) = ""
    Next
  End If
%>

Cookiesコネクション,HasKeys も参照ください。