什么是ASP+(二) Scott Mitchell (作) zhx(譯)
5.Post-Back Forms:
創(chuàng)建ASP頁面需要知道一些用戶信息,在處理這些信息的時候,許多的ASP開發(fā)者使用的是Post-Back Forms:技術。對于那些不熟悉語言和技術的人來說,一個Post-Back Forms:是一個Web頁面表格(使用<FORM…..>標簽),這個表格的執(zhí)行屬性可以被設置不存在或被設置為與顯示表格的Web頁面具有相同的URL。當用戶提交表格的時候,相同的ASP頁面被調用,于是用戶的輸入傳回了表格。而在ASP中處理這些時,需要用很長的if語句來判斷post-back是否發(fā)生了。
在ASP+中,語句的煩瑣已經過去,現在開發(fā)者可以用控制按鈕(我們將得到服務器的控制)創(chuàng)建一個ASP+頁面。在ASP+代碼中,開發(fā)者創(chuàng)建一個函數,這個函數將只能在被點擊的時候觸發(fā)。(很好,我們可以在以后的文章中更加深入的看到這一點)。這些是通過使用微軟模式和Post-Back 表格的智能程序來完成的。表格提交后的所有行為可以用一個單一的函數來代替,而不是用一系列難讀的if語句。
服務控制:使用ASP,所有的采集用戶輸入的方法是從頭到尾執(zhí)行完默認的HTML來控制用戶表格。例如:創(chuàng)建一個用戶可以鍵入信息的文本框只用幾行代碼就可以完成。在ASP+中,這些被服務控制所代替,這些服務控制可以在只有幾行代碼的ASP+頁面中被創(chuàng)建。例如,要在ASP+頁面中創(chuàng)建一個文本框,你可以用上面標準的HTML標簽,或用一個帶有下面代碼的服務控制來完成:
<FORM><INPUT TYPE=TEXT NAME=MYTEXTBOX></FORM>
這個服務控制文本框,用ASP的文本框標簽創(chuàng)建,在ASP+指令中需要一個文本框。服務控制可以創(chuàng)建所需的HTML去描述一個標準的文本框。所以,當一個用戶瀏覽ASP+頁面的時候,HTML返回的是:
<FROM name=”ctr2” method=”post” action=”intro7.aspx” id=”ctr2”> <INPUT type=”hidden” name=”_VIEWSTATE” value=”a0z-426043723…”> <INPUT name=”MyTextBox” type=”text” id=”MyTextBox”> …
需要注意的是,服務控制文本框只是用來解釋普通的HTML。還要注意的是,HIDDEN項的值是_VIEWSTATE。這些變量以用戶的輸入為基礎傳遞表格的狀態(tài)。這篇短文并沒有試圖去挖掘服務控制是怎樣工作和它們怎樣保持狀態(tài)的細節(jié)問題。這些對理解服務控制是怎樣將清楚,正確的HTML語句返回給用戶來說是很重要的。因此,就像以前使用ASP一樣,當將HTML傳給客戶端的時候,任何標準的Web瀏覽器可以很好的看見ASP+頁面。
擴展是有競爭的!:微軟的ASP+開發(fā)小組很清楚擴展 ASP應用程序是多么困難。例如,如果你想在你的擴展服務器上創(chuàng)建一個帶有許多通用的COM元件的龐大的ASP應用程序,你要將這個程序移到你的成品服務器中是一個多么令人頭疼的事。你要確保所有的COM對象存在于兩個服務器中,而且在展開一個ASP應用程序時,這些已被注冊的元件將是最令人頭疼的事之一。還有,在擴展服務器和成品服務器之間,你要保持IIS的設置要也是很令人煩惱的事。
ASP+就將你從這些痛苦中解脫了。最明了的是,ASP+的COM注冊不再是問題了。我不騙你!簡單的拷貝COM DLL你需要有DLL目錄。就可以了!resvr32是不需要的!ASP+也提供一個配置文件(以文本格式),它可以被修改成各種配置,它通常只是在IIS管理頁面中是可變的。這兩個精彩的改變是擴展ASP+應用程序具有競爭力的地方。
|