人人做人人澡人人爽欧美,国产主播一区二区,久久久精品五月天,羞羞视频在线观看免费

當(dāng)前位置:蘿卜系統(tǒng)下載站 > 技術(shù)開(kāi)發(fā)教程 > 詳細(xì)頁(yè)面

淺談Asp程序的編寫(xiě)與調(diào)試——給入門(mén)者

淺談Asp程序的編寫(xiě)與調(diào)試——給入門(mén)者

更新時(shí)間:2020-02-21 文章作者:未知 信息來(lái)源:網(wǎng)絡(luò) 閱讀次數(shù):

很多朋友覺(jué)得Asp不是很好學(xué),我覺(jué)得其實(shí)有了一定的編程基礎(chǔ),再加上那么一點(diǎn)點(diǎn)技巧,入門(mén)是不難的(不過(guò)要做好也不是很容易,要很多的相關(guān)知識(shí)——什么Sql Server數(shù)據(jù)庫(kù)語(yǔ)言啦,數(shù)據(jù)結(jié)構(gòu)啦(這些都是在優(yōu)化Asp的算法時(shí)候要熟悉的)。
在這只和大家談?wù)勎覀(gè)人是怎書(shū)寫(xiě)和調(diào)試Asp的,希望能給大有一點(diǎn)幫助……
Asp腳本的書(shū)寫(xiě):

一、注意區(qū)分清楚html語(yǔ)法和VBScript語(yǔ)法。因?yàn)锳sp是混合使用Html語(yǔ)法和VBScript語(yǔ)法的(當(dāng)然,我全部寫(xiě)成VBScript語(yǔ)法也可以,不過(guò)那樣的程序那難閱讀)。最好使用一些能標(biāo)示html標(biāo)記和VBScript標(biāo)記的編輯工具,比如Ultra Edit什么的。
我學(xué)得編輯器的工具欄菜單不用太多,有一般的功能就行了,因?yàn)楣ぞ卟藛我欢啵庉媴^(qū)域肯定會(huì)變得較小,這是我們不希望看到的(你總不希望為了找出一個(gè)If的結(jié)束語(yǔ)句End if而翻來(lái)翻去吧。這也許是我以前使用記事業(yè)來(lái)編寫(xiě)Asp腳本的原因吧——呵呵,記事本的編輯區(qū)域較大嘛……

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

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

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

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

六、拼寫(xiě)要十分小心


Asp腳本的調(diào)試:
一、在你編輯實(shí)現(xiàn)一定功能的Asp腳本時(shí),首先得有一個(gè)清晰的思路,只要是:要實(shí)現(xiàn)什么功能,實(shí)現(xiàn)的關(guān)鍵是什么、語(yǔ)句流怎樣控制等……雖然小的項(xiàng)目(比如一個(gè)簡(jiǎn)單的留言本系統(tǒng))不一定要寫(xiě)出來(lái),但起碼要心中有數(shù)。

二、如果要使用數(shù)據(jù)庫(kù)的話,得先根據(jù)你的項(xiàng)目功能設(shè)計(jì)數(shù)據(jù)庫(kù)結(jié)構(gòu)

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

四、調(diào)試語(yǔ)法錯(cuò)誤的時(shí)候,經(jīng)常采用“截短法”來(lái)做。
比如出錯(cuò)提示為“第236行錯(cuò)誤,缺少end”,這樣長(zhǎng)的代碼,你很難知道到底缺少的是那個(gè)If的end或者是select的end……
比如下面一段程序:

一大堆語(yǔ)句
if

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


五、標(biāo)記調(diào)試方法
有時(shí)為了知道程序執(zhí)行到了哪個(gè)地方,通常在程序里加進(jìn)一些標(biāo)記,比如response.write "abc",然后將這句移動(dòng)位置,這樣就能確定程序到底有沒(méi)有執(zhí)行到我希望到的地方。
在調(diào)試循環(huán)的時(shí)候,常常需要輸出循環(huán)控制變量的值到瀏覽器以幫助調(diào)試。
一些由于是變量值引起的錯(cuò)誤,比如數(shù)據(jù)庫(kù)連接或記錄集打開(kāi)錯(cuò)誤,通常在出錯(cuò)語(yǔ)句的前面輸出sql語(yǔ)句以確認(rèn)sql語(yǔ)句沒(méi)有錯(cuò)誤。出于這個(gè)考慮,我通常使用sql="語(yǔ)句"/setrs=execute(sql)來(lái)代替直接運(yùn)行set rs=execute("語(yǔ)句"),因?yàn)楫?dāng)我的語(yǔ)句出錯(cuò)時(shí),我可以很方便地在前面來(lái)個(gè)response.write sql來(lái)查看sql語(yǔ)句到底有沒(méi)有問(wèn)題。

六、在調(diào)試表單時(shí),對(duì)于password表單項(xiàng),通常先將它變成text,等調(diào)試好了后才改為password。

七、監(jiān)視變量法
在調(diào)試一些變量比較多的腳本時(shí),比如聊天室調(diào)試時(shí),由于大量使用到application和session變量,通常要做些輔助的腳本來(lái)查看application和session變量,這樣就方便多了。

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

九、盡量給一些數(shù)據(jù)庫(kù)連接串全部的參數(shù),以免引起不必要的麻煩。
雖然一些參數(shù)不是必須的,但還是全部給它較好。我曾經(jīng)試過(guò)由于沒(méi)有給一個(gè)Access的數(shù)據(jù)庫(kù)連接字符串足夠的參數(shù)而引起離奇古怪的問(wèn)題:修改了連接文件后,刷新一次可得到正確的結(jié)果,再來(lái)刷新一次就不行了,甚至出現(xiàn)了“無(wú)法指出的錯(cuò)誤”。

十、不要急于進(jìn)行錯(cuò)誤處理On_orror。因?yàn)殄e(cuò)誤本身可以幫我們調(diào)試腳本,你一旦屏蔽了錯(cuò)誤,很容易不知道到底哪里出錯(cuò)了。

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

此文只適合于一些初學(xué)者閱讀。

請(qǐng)?jiān)L問(wèn)我的個(gè)人主頁(yè)http://swuse.yeah.net,共同討論Asp

溫馨提示:喜歡本站的話,請(qǐng)收藏一下本站!

本類(lèi)教程下載

系統(tǒng)下載排行

網(wǎng)站地圖xml | 網(wǎng)站地圖html
主站蜘蛛池模板: 左云县| 郁南县| 师宗县| 凤冈县| 灵璧县| 襄城县| 沙坪坝区| 武邑县| 克山县| 建昌县| 黄石市| 郎溪县| 长治县| 桑植县| 东至县| 年辖:市辖区| 莲花县| 顺义区| 会同县| 禄丰县| 温州市| 红河县| 南丰县| 澄江县| 嘉义市| 卢氏县| 阳山县| 伊金霍洛旗| 通榆县| 汝州市| 康乐县| 固阳县| 勃利县| 年辖:市辖区| 佛教| 玉门市| 沙雅县| 金沙县| 永福县| 合肥市| 甘肃省|