當前位置:蘿卜系統下載站 > 技術開發教程 > 詳細頁面

淺談Asp程序的編寫與調試——給入門者

淺談Asp程序的編寫與調試——給入門者

更新時間:2020-02-21 文章作者:未知 信息來源:網絡 閱讀次數:

很多朋友覺得Asp不是很好學,我覺得其實有了一定的編程基礎,再加上那么一點點技巧,入門是不難的(不過要做好也不是很容易,要很多的相關知識——什么Sql Server數據庫語言啦,數據結構啦(這些都是在優化Asp的算法時候要熟悉的)。
在這只和大家談談我個人是怎書寫和調試Asp的,希望能給大有一點幫助……
Asp腳本的書寫:

一、注意區分清楚html語法和VBScript語法。因為Asp是混合使用Html語法和VBScript語法的(當然,我全部寫成VBScript語法也可以,不過那樣的程序那難閱讀)。最好使用一些能標示html標記和VBScript標記的編輯工具,比如Ultra Edit什么的。
我學得編輯器的工具欄菜單不用太多,有一般的功能就行了,因為工具菜單一多,編輯區域肯定會變得較小,這是我們不希望看到的(你總不希望為了找出一個If的結束語句End if而翻來翻去吧。這也許是我以前使用記事業來編寫Asp腳本的原因吧——呵呵,記事本的編輯區域較大嘛……

二、書寫程序時使用縮進
書寫程序時使用縮進可以減少很多不必要的語法錯誤。以免執行你的asp程序的時候提示“缺少end”什么什么的……
通常指使用縮進書寫指的是對流控制語句使用縮進,如果我不說,你也應該知道有哪些流控制語句吧:
If……Else……End if
For……Next
Do While……Loop
Select case ……Case……Case Else……End Select
For each element In group……Next
等等……
比如寫成下面這樣查錯就方便多了:
If 條件 then
語句
do while 條件
語句
loop
else
語句
end if

三、熟悉一些省略的寫法,比如:
If 條件 then
語句
End if
可簡寫成If 條件 then 語句
注意:后面不能再寫else和end if。
等等……

四、盡量熟悉你要使用的腳本語言。

五、備用一些常用的教程(比如VBScript語言參考什么的),以備查用。

六、拼寫要十分小心


Asp腳本的調試:
一、在你編輯實現一定功能的Asp腳本時,首先得有一個清晰的思路,只要是:要實現什么功能,實現的關鍵是什么、語句流怎樣控制等……雖然小的項目(比如一個簡單的留言本系統)不一定要寫出來,但起碼要心中有數。

二、如果要使用數據庫的話,得先根據你的項目功能設計數據庫結構

三、不要等到整個Asp腳本全部編寫完畢時才開始調試。一般都是一邊編寫一邊調試(如果你看我做的話就是開兩個窗口:一個編輯器,一個IE,在編輯中改一下腳本,再到IE窗口刷新一下)。
如果你的腳本有幾百行那么多,即使你只是將一段正確的腳本輸入到文件里面,也難保不會出錯。而這么長的腳本文件是很難調試的,一旦出現錯誤,你很難找出到底哪里出了問題——即使是語法錯誤。

四、調試語法錯誤的時候,經常采用“截短法”來做。
比如出錯提示為“第236行錯誤,缺少end”,這樣長的代碼,你很難知道到底缺少的是那個If的end或者是select的end……
比如下面一段程序:

一大堆語句
if

else
(這里有一大堆語句)
end if
我通常的做法是截去括號中的部分,然后再試運行,再逐步將截去的部分放回去(這特別適用于調試別人編輯的腳本)。


五、標記調試方法
有時為了知道程序執行到了哪個地方,通常在程序里加進一些標記,比如response.write "abc",然后將這句移動位置,這樣就能確定程序到底有沒有執行到我希望到的地方。
在調試循環的時候,常常需要輸出循環控制變量的值到瀏覽器以幫助調試。
一些由于是變量值引起的錯誤,比如數據庫連接或記錄集打開錯誤,通常在出錯語句的前面輸出sql語句以確認sql語句沒有錯誤。出于這個考慮,我通常使用sql="語句"/setrs=execute(sql)來代替直接運行set rs=execute("語句"),因為當我的語句出錯時,我可以很方便地在前面來個response.write sql來查看sql語句到底有沒有問題。

六、在調試表單時,對于password表單項,通常先將它變成text,等調試好了后才改為password。

七、監視變量法
在調試一些變量比較多的腳本時,比如聊天室調試時,由于大量使用到application和session變量,通常要做些輔助的腳本來查看application和session變量,這樣就方便多了。

八、以少代多法
調試global.asa文件的邏輯錯誤是比較麻煩的,特別是session.onend和application.onend事件。
applicatoin.onstart事件調試不難——因為當你第一次打開瀏覽器的時候,如果global.asa文件有語法錯誤的時候,瀏覽器會提示你什么地方出錯了。但很不幸地,session.onend就看不到提示了。為了確認你的session.onend到底有沒有執行,通常在application.onstart設置一個標記變量,然后在session.ond事件中將
這個變量改成變一個值,這樣就可以等session超時后查看該標記變量有沒有被改變,如果沒有改變就證明你的session.onend沒有執行。
對于application.onend的調試,你可以把那部分代碼拿到一個asp文件中,給它一定的條件(比如它使用了什么變量,然后滿足它的條件看看有沒有達到預的效果。不過通常application.onend都不會太復雜(復雜了調試通不過唄)。

九、盡量給一些數據庫連接串全部的參數,以免引起不必要的麻煩。
雖然一些參數不是必須的,但還是全部給它較好。我曾經試過由于沒有給一個Access的數據庫連接字符串足夠的參數而引起離奇古怪的問題:修改了連接文件后,刷新一次可得到正確的結果,再來刷新一次就不行了,甚至出現了“無法指出的錯誤”。

十、不要急于進行錯誤處理On_orror。因為錯誤本身可以幫我們調試腳本,你一旦屏蔽了錯誤,很容易不知道到底哪里出錯了。

十一、減少邏輯錯誤的一個最好的方法是有一個清晰的思路,別人是很難幫上你的。
因此如果你在BBS上問一個邏輯錯誤,回答者首先的回答就是:“你的源代碼呢?”,因此除非你是為了灌水,否則在BBS上問一個象這樣“為什么我的記錄集是空的”的問題是沒有意義的。

此文只適合于一些初學者閱讀。

請訪問我的個人主頁http://swuse.yeah.net,共同討論Asp

溫馨提示:喜歡本站的話,請收藏一下本站!

本類教程下載

系統下載排行

網站地圖xml | 網站地圖html
亚洲嫩草影院久久精品