国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 編程 > ASP > 正文

ASP 3.0高級(jí)編程(三十五)_ASP教程

2024-05-04 11:03:56
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

推薦:使用ASP建設(shè)私人的搜索引擎
很多網(wǎng)絡(luò)愛(ài)好者在創(chuàng)建自己的個(gè)人主頁(yè)時(shí),都絞盡腦汁讓自己網(wǎng)站的功能更全面。在此,筆者介紹一種使用ASP建立自己的搜索引擎的方法?;舅悸?利用表單將用戶(hù)提交的搜索關(guān)鍵字存儲(chǔ)在變量中,

7.5.1 常規(guī)調(diào)試技術(shù)
在第2章中,已經(jīng)看到如何使用Response.Write方法以及Request集合來(lái)顯示集合的內(nèi)容。如果代碼要使用來(lái)自請(qǐng)求的值,首先要做的是保證所需的值存在。很容易出現(xiàn)的問(wèn)題是錯(cuò)拼或改變的<FORM>網(wǎng)頁(yè)中HTML控件的名字,或者創(chuàng)建附加在URL后面的查詢(xún)字符串時(shí)出現(xiàn)了錯(cuò)誤的客戶(hù)端。
1. 顯示各種集合內(nèi)容
當(dāng)程序試圖使用用戶(hù)提供的值運(yùn)行時(shí),可能沒(méi)有得到所期望的結(jié)果,或者什么結(jié)果也沒(méi)得到。記住,引用Request對(duì)象的集合中一個(gè)并不存在的值(例如,在窗體上沒(méi)有一個(gè)名為“ThisControl”的控件時(shí),使用Request.Form("ThisControl")不會(huì)引起錯(cuò)誤。結(jié)果可能只得到一個(gè)空字符串。如果期望查找存儲(chǔ)在用戶(hù)的Session對(duì)象或全局Application對(duì)象變量中的數(shù)值,同樣可能出現(xiàn)這種情況。
如果創(chuàng)建一個(gè)頁(yè)面用來(lái)顯示所有Request對(duì)象集合、Session和Application對(duì)象的Contents和StaticContens集合的內(nèi)容,可以任何網(wǎng)頁(yè)使用Server.Execute對(duì)其進(jìn)行訪(fǎng)問(wèn)。所需要做的工作是把下面程序行加到ASP網(wǎng)頁(yè)中,用來(lái)顯示集合的全部?jī)?nèi)容。當(dāng)然,根據(jù)服務(wù)器上文件存放的位置,必須給文件設(shè)置相應(yīng)的路徑。
<% Server.Execute "/path_to_file/debug_Request.asp" %>
這是一種很好的方法,保證我們希望在Request、Session和Application集合中找到的任何值確實(shí)存在,并且包含了合適的值。在本書(shū)的示例文件Chapter07子目錄中提供了一個(gè)相應(yīng)的文件,取名為debug_Request.asp。它基本上是用于第2章的show_request.asp網(wǎng)頁(yè)和用于第3章的show_application.asp和show_session.asp網(wǎng)頁(yè)的一個(gè)組合,但刪除了部分HTML程序代碼。它只是簡(jiǎn)單地遍歷了集合并把值放到當(dāng)前頁(yè)面中。
可以通過(guò)運(yùn)行“Custom Error Page”實(shí)例來(lái)查看這個(gè)頁(yè)面。這個(gè)實(shí)例在本章前面看到過(guò),打開(kāi)時(shí)請(qǐng)選中“Display debugging information”復(fù)選框,或者直接在chapter07目錄中的主菜單網(wǎng)頁(yè)中打開(kāi)。
2. 顯示中間值
在網(wǎng)頁(yè)中查看運(yùn)行情況的第二個(gè)方法是顯示網(wǎng)頁(yè)運(yùn)行時(shí)變量的值.當(dāng)大概知道了錯(cuò)誤來(lái)自何處,哪個(gè)變量在起作用時(shí),這種傳統(tǒng)技術(shù)還是不能廢棄的。但由于IIS 5.0網(wǎng)頁(yè)緩沖方式的改變,使得使用這項(xiàng)技術(shù)比較困難。
在ASP和IIS的先前版本中,缺省時(shí)關(guān)閉頁(yè)面緩沖,并且?guī)缀鯖](méi)有人想到將緩沖打開(kāi)(使用Response.Buffer = True打開(kāi)),除非想使用Response.Redirect完成網(wǎng)頁(yè)的再定向(參看第2章)。響應(yīng)多個(gè)請(qǐng)求時(shí),由于緩沖減小了網(wǎng)頁(yè)間切換的次數(shù),從而提高了IIS的效率。
然而,當(dāng)出現(xiàn)一個(gè)使運(yùn)行停止的運(yùn)行期錯(cuò)誤時(shí),IIS自動(dòng)調(diào)用Response.Clear方法,再調(diào)用Server.Execute來(lái)裝入定制錯(cuò)誤網(wǎng)頁(yè),因此寫(xiě)進(jìn)網(wǎng)頁(yè)的任何輸出都丟失了。解決方法是暫時(shí)增加下面的程序行:
<% Response.Buffer = False %>
此程序行放在頁(yè)面頂部<@LANGUAGE...>指令后面,任何由Response.Write語(yǔ)句生成的調(diào)試輸出將出現(xiàn)在定制錯(cuò)誤網(wǎng)頁(yè)的頂部。記住在完成網(wǎng)頁(yè)調(diào)試之后將它去掉。
強(qiáng)行使程序運(yùn)行通過(guò)一個(gè)錯(cuò)誤點(diǎn),然后顯示可疑的變量值,這種方法有時(shí)也是有用的。只需在網(wǎng)頁(yè)開(kāi)始處附近增加On Error Resume Next語(yǔ)句,然后就能訪(fǎng)問(wèn)Err對(duì)象(在VBScript中),并顯示錯(cuò)誤號(hào)、錯(cuò)誤源和描述。
3. 檢查組件屬性值
如果使用的組件具有在ASP腳本代碼中設(shè)置的屬性,在完成設(shè)置之后,并且調(diào)用組件方法之前和之后,能通過(guò)顯示所有屬性(或僅是可疑的屬性)來(lái)跟蹤錯(cuò)誤。當(dāng)一個(gè)方法運(yùn)行時(shí),可能發(fā)現(xiàn)屬性值意外地被組件改變了,這或許是故意的,或者是因?yàn)榻M件中的缺陷。沒(méi)有親自檢查實(shí)際代碼,不要做任何假設(shè)。

7.5.2 Microsoft Script Debugger
當(dāng)開(kāi)發(fā)更復(fù)雜的處理實(shí)際任務(wù)的應(yīng)用程序時(shí),經(jīng)常需要一個(gè)更加強(qiáng)大的工具來(lái)進(jìn)行調(diào)試。Microsoft Script Debugger(微軟腳本調(diào)試器)是一種允許調(diào)試運(yùn)行在客戶(hù)機(jī)和服務(wù)器上的腳本的調(diào)試工具。它能用于任何啟用ActiveX的腳本語(yǔ)言(包括VBScript和JScript)編寫(xiě)的程序,也能夠用來(lái)調(diào)試對(duì)Java applet、Java Bean和ActiveX組件的調(diào)用。
在研究這個(gè)工具之前,先簡(jiǎn)要說(shuō)明一些問(wèn)題。如前所述,ASP應(yīng)用程序由兩種腳本組成,一種是客戶(hù)端腳本,一種是服務(wù)器端腳本??蛻?hù)端腳本通常由VBScript或JScript腳本語(yǔ)句組成,當(dāng)其到達(dá)客戶(hù)端時(shí)出現(xiàn)在HTML頁(yè)面中并在此執(zhí)行,可能是在載入文檔時(shí)或是在對(duì)一些事件的響應(yīng)中。服務(wù)器端腳本通常也由VBScript或JScript語(yǔ)句組成。當(dāng)瀏覽器請(qǐng)示網(wǎng)頁(yè)時(shí),服務(wù)器端腳本由IIS執(zhí)行。在下面的討論中,將討論服務(wù)器端腳本調(diào)試的方法。然而所討論的許多技術(shù)也可用于客戶(hù)端腳本調(diào)試。
1. 服務(wù)器端的調(diào)試
為了調(diào)試服務(wù)器端腳本,在運(yùn)行IIS的計(jì)算機(jī)上運(yùn)行腳本調(diào)試器,然而在使用腳本調(diào)試器之前,必須啟用調(diào)試。為了使性能最優(yōu)化,基于ASP的應(yīng)用程序在缺省情況下關(guān)閉了調(diào)試功能。
注意,不要對(duì)生產(chǎn)性的應(yīng)用程序(即處于活動(dòng)狀態(tài)的并被他人使用的公用網(wǎng)站)打開(kāi)調(diào)試功能。這樣會(huì)減慢整個(gè)應(yīng)用程序的運(yùn)行,并且錯(cuò)誤能使網(wǎng)頁(yè)出現(xiàn)不確定的停止運(yùn)行情況。
調(diào)試僅能為虛擬應(yīng)用程序和整個(gè)Web網(wǎng)站進(jìn)行設(shè)置,為了啟用調(diào)試,打開(kāi)應(yīng)用程序或站點(diǎn)的Properties對(duì)話(huà)框,在Home Directory選項(xiàng)卡中,點(diǎn)擊Configuration按鈕,在Application Configuration對(duì)話(huà)框的App Debugging選項(xiàng)卡中,選擇Enable ASP server-side script debugger,下面準(zhǔn)備調(diào)試我們的應(yīng)用程序。

注意Application Configuration對(duì)話(huà)框包含一個(gè)復(fù)選框,能夠啟用客戶(hù)端腳本調(diào)試。這一點(diǎn)在IIS 5.0中沒(méi)有實(shí)現(xiàn),在文檔中僅標(biāo)記為“reserved for future use”。如果通常的500-100.asp定制錯(cuò)誤頁(yè)面不可用,Script Error messages部分中包含將文本。
(1) 處理服務(wù)器腳本
不像客戶(hù)端腳本,基于ASP應(yīng)用程序腳本不是事件驅(qū)動(dòng)的。當(dāng)客戶(hù)端要求一個(gè)來(lái)自服務(wù)器的網(wǎng)頁(yè)時(shí),服務(wù)器讀取網(wǎng)頁(yè)內(nèi)容,并處理所有的服務(wù)器腳本(即在<%...%>和<SCRIPT RUNAT="SERVER"></SCRIPT>段中的所有內(nèi)容),也包括在HTML文本中的“行內(nèi)”腳本段內(nèi)容,例如:
The valve of the result is: <% = strResult %>
處理流程顯示框圖中
當(dāng)IIS載入網(wǎng)頁(yè)時(shí)將處理ASP頁(yè)面中的所有腳本,在任何輸出送給客戶(hù)端之前,ASP及腳本引擎能夠捕獲語(yǔ)法和運(yùn)行期錯(cuò)誤(除非你關(guān)閉緩沖或調(diào)用Response.Flush方法)。
(2) 腳本調(diào)試器提供的幫助
啟用腳本調(diào)試時(shí),如果出現(xiàn)錯(cuò)誤,在服務(wù)器屏幕上可以看到一個(gè)描述ASP代碼錯(cuò)誤的對(duì)話(huà)框,點(diǎn)擊OK,然后調(diào)入當(dāng)前ASP網(wǎng)頁(yè)的一個(gè)只讀拷貝,打開(kāi)的腳本調(diào)試器,錯(cuò)誤出現(xiàn)的行由箭頭指示

這里,錯(cuò)誤的產(chǎn)生是由于出現(xiàn)了Page Counter對(duì)象方法的名字錯(cuò)誤,應(yīng)是PageHit而不是DoPageHit。同時(shí),腳本調(diào)試器找到了錯(cuò)誤并且終止了頁(yè)面的運(yùn)行,工具條上的按鈕用于程序的繼續(xù)運(yùn)行、單步程序運(yùn)行或者終止頁(yè)面的處理。
工具條最右邊的按鈕打開(kāi)腳本調(diào)試器中的Immediate窗口,可以用它和頁(yè)面進(jìn)行交互,并且很可能找到出錯(cuò)的地方。例如,可以查詢(xún)或者設(shè)置變量值或組件屬性,可以執(zhí)行內(nèi)部函數(shù)和子程序、自定義函數(shù)和子程序以及已經(jīng)創(chuàng)建的對(duì)象方法等。在圖中,調(diào)用了Page Counter組件的PageHit方法,然后查詢(xún)Hits屬性以得到正在運(yùn)行的腳本中該處的值。
為了了解為什么在“公共”網(wǎng)站上不應(yīng)使用腳本調(diào)試器,可以從客戶(hù)機(jī)上打開(kāi)一個(gè)包含服務(wù)器端錯(cuò)誤的頁(yè)面。在這種情況下,錯(cuò)誤信息對(duì)話(huà)框出現(xiàn)在服務(wù)器上,腳本調(diào)試器也在服務(wù)器上打開(kāi)。在客戶(hù)機(jī)上,直到運(yùn)行在服務(wù)器上的腳本調(diào)試器關(guān)閉,才開(kāi)始載入該頁(yè)面。
(3) 啟動(dòng)和使用調(diào)試器
啟用腳本調(diào)試后,虛擬應(yīng)用程序的網(wǎng)頁(yè)中出現(xiàn)錯(cuò)誤時(shí),腳本調(diào)試器自動(dòng)

分享:ASP實(shí)例:詞語(yǔ)搭配游戲的制作
這是個(gè)關(guān)于詞語(yǔ)搭配的游戲,是用ASP、VBScript和JavaScript寫(xiě)的。在本機(jī)Win98 OEM2、PWS、IE5下測(cè)試下沒(méi)發(fā)現(xiàn)大問(wèn)題。使用方法:方法一:比方說(shuō)你的3W服務(wù)的目錄是C:Inetpubwwwroot,

發(fā)表評(píng)論 共有條評(píng)論
用戶(hù)名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 阿拉尔市| 英山县| 凭祥市| 甘肃省| 绿春县| 于都县| 巨鹿县| 仙桃市| 阆中市| 长沙市| 浮梁县| 鹤山市| 新巴尔虎右旗| 寿光市| 宜良县| 济源市| 兖州市| 汤阴县| 柳河县| 秦皇岛市| 泉州市| 澳门| 清水县| 乌拉特前旗| 南宁市| 台东市| 波密县| 庄河市| 如东县| 浏阳市| 广德县| 黑水县| 攀枝花市| 青龙| 鄄城县| 定襄县| 那坡县| 清涧县| 克山县| 盐边县| 越西县|