web 7. Webclass 中的事件響應.
$1. .Webclass中預定義的事件有3個 : response , processtag , userevent
.response 事件響應使用者端請求.
.processtag 事件是作為 WriteTemplate 方法處理的一部分自動發生的.不能單獨被觸發或用來處理響應.
.userevent 事件: 一個 UserEvent 過程處理 webitem 的所有使用者事件.UserEvent 事件是由URLFor 方法在運行時產生的.所以只有使用了URLFor 方法動態產生的超串連才會觸發UserEvent 事件.
$2. Webclass_start() 事件類別似於VB中的Sub Main().
所以可以指定一個project 開始的webclass. 也可在model 模組中用Sub Main() 來啟動.
$3. 發送html 到瀏覽器: 將頁面反饋回瀏覽器有兩種方法:
.對html模板則使用 “writetemplate” 方法.此方法啟用”ProcessTag”事件,從而對模板中相應的內容(用WC@符號標記的部分)進行替換.
.在Customwebitem 事件中動態產生反饋頁面.
如: with response
.write “<html”>
.write”<head>”
.write”</head>”
.write”<body>”
.write”<p>Hello! Universe!</p>”
.write”</body></html>”
end with
$4. 從HTML 的<form>中擷取資訊:
使用Request 對象在一個 HTML <form>中擷取使用者輸入的資訊。但必須將 <form action…> 標記屬性和webclass中的一個事件串連,提交一個form 就可以激發 webclass 中的這個事件。因此,就可以使用這個事件搜集和操作資訊。
$5. 動態替換html 模板檔案中的內容.
使用$3中的writetemplate 方法.
$6. 自訂webitem 事件.
兩種方法和自訂webitem 事件關聯起來:
1:用action=webclass.asp?wci=webitem&wce=’自訂事件’ 的方法.
2.用URLFor (Webitem, 自訂事件)方法.
$7. 其他使用方法(如: Cookie,Session對象等) 和 ASP 應用程式中相同
8. Webclass 其他屬性的作用和使用方法.
$1. URLData 屬性
URLData 屬性在瀏覽器和 Web 服務器之間傳送狀態資訊。URLData 屬性將資訊追加到 webclass 發送到瀏覽器的特定 URL 中。當瀏覽器使用這些 URL 之一提交另一個請求時,這些資訊可以被傳回到 Web 服務器以做進一步的處理。通過這種方式,您可以在兩端都沒有儲存資訊的情況下發送和擷取狀態資訊。
URLData 屬性提供了幾個優點:
它可以用於不支援 cookie 的瀏覽器。
它將狀態資訊儲存在頁面本身。因此,如果使用者使用後退按鈕並且重新提交該頁面,webclass 收到的和該頁面原先發送的狀態資料相同。
URLData 有兩個缺點:
第一, URLData 在發送資料的數量上是受限制的。大小的限制隨著瀏覽器的不同而變化,但是大多數瀏覽器能處理 URL 中大約2K 的資料。在應用程式中應當測試打算使用的 URL 長度。
第二, 如果使用一個具有 GET 方法的form ,URLData是一種不可行的發送資訊方法。在這種情況下,可使用 POST 方法,或使用另外的手段來傳送狀態。(如:Cookie 或使用隱藏的欄位來傳送少量資訊.)
URLData 屬性可以在兩種情況下利用 webclass 的響應添加資訊到 URL,追加指定的資訊到包含一個稱為 WCU 的參數中。(….. webclass.asp?WCI=WebItem&WCE=WebEvent&WCU=URLData)
當 webclass 調用一個 WriteTemplate 方法時。
如: ……………
URLData=”UserNO :1234”
Webitem.writetemplate
………………
當 webclass 調用一個 URLFor 方法時。 (方法同上).
$2. Webclass 中的StateManagement 屬性.
當webclass 的 StateManagement 的屬性被設定為 wcNoState 時,不能在伺服器的 WebClass 對象中儲存資訊.即不能用URLData來儲存狀態資訊.
$3. NameInURL 屬性.
指定為每一個webclass 定位的 .ASP 檔案.