ASP編碼必備的8條原則

2022-09-20 23:21:14 字數 3438 閱讀 3395

asp是active server page的縮寫,意為「動態伺服器頁面」。asp是微軟公司開發的代替cgi指令碼程式的一種應用,它可以與資料庫和其它程式進行互動,是一種簡單、方便的程式設計工具。在這裡僅就**優化進行一些簡單討論。

1、宣告vbscript變數

在asp中,對vbscript提供了強勁的支援,能夠無縫整合vbscript的函式、方法,這樣給擴充套件asp的現有功能提供了很大便利。由於asp中已經模糊了變數型別的概念,所以,在進行asp與vbscript互動的過程中,很多程式設計師也慣於不宣告vbscript的變數,這樣加重了伺服器的解析負擔,進而影響伺服器的響應請求速度。

鑑於此,我們可以象在vb中強制使用者進行變數宣告一樣在vbscript中強制使用者進行變數宣告。實現方法是在asp程式行首放置。

2、對url位址進行編碼

在我們使用asp動態生成乙個帶引數url位址並進行跳轉時,在ie中解析很正常,但在netscrape瀏覽時卻有錯誤如下:

解決方法是對生成的url引數使用asp內建server物件的urlencode方法進行url編碼,例子如下:

3、清空物件

當使用完物件後,首先使用close方法來釋放物件所占用的系統資源;然後設定物件值為「nothing」釋放物件占用記憶體。當年,我就是在一張頁面上建立了百餘個沒有清空物件的記錄集而崩潰了我的iis 。下面的**使用資料庫內容建立乙個下拉列表。**示例如下:

mysql="select * from authors where au_id<100"

set conntemp=s程式設計客棧erver.createobject("adodb.connection")

conntemp.open mydsn

set rstemp=conntemp.execute(mysql)

if rstemp.eof then

response.write "資料庫為空"

response.write mysql

conntemp.close

set conntemp=nothing

response.end

end if%>

4、使用字串建立sql查詢

使用字串來建立查詢並不能加快伺服器的解析速度,相反,它還會增加伺服器的解析時間。但在這裡仍然推薦使用字串代替簡單的查詢語句來進行查詢。這樣做的好處是,可以迅速發現程式問題所在,從而便利高效地生成程式。示例如下:

5、使用case進行條件選擇

在進行條件選擇的時候,盡量使用case語句,避免使用if語句。使用case語句,可以使程式流程化,執行起來也比if語句來的快。示例如下:

" next

%>

程式設計客棧um & "th"

else

num = num & "st"

end if

case "2"

if instr(num,"12") then

num = num & "th"

else

num = num & "nd"

end if

case "3"

if instr(num,"13") then

num = num & "th"

else

num = num & "rd"

end if

case "4"

num = num & "th"

case else

num = num & "th"

end select

addsuffix = num

end function

%>

6、使用adovbs.inc檔案中定義的常量開啟記錄集

開啟記錄集時,可以定義記錄集開啟的游標nxvtmcmxc型別和鎖定型別。

在adovbs.inc檔案中定義了一些常量來定義這些型別。adovbs.inc檔案儲存在\inetpub\iissamples\iisamples目錄下面。下面列舉幾個常用的游標型別和鎖定型別。

游標型別:

鎖定型別:

" & sqltemp

rstemp.close

set rstemp=nothing

%>

7、避免在使用global.asa檔案中進行物件定義

由於global.asa檔案中的內容可以為站點內所有檔案引用,無疑,在global.asa檔案中進行物件定義可以省去很多重複工作。

比如在global.asa中的application_onstart函式中進行如下定義:

;這樣就可以在站點任何**中做類似引用:

同樣地,可以在session_onstart函式中建立記錄集物件

然後在站點也麵中進行如下引用:

但這樣做的同時也有很大的負面影響,由於appwww.cppcns.comlication和session變數都只有在關閉**的時候才釋放占用的資源,所以session引數會浪費大量不必要記憶體,而且此時application變數成為伺服器效能的瓶頸。

解決方法:

建立定義物件asp頁面,在需要進行呼叫這些物件的頁面上,引入這張asp頁面。假設定義物件的asp頁面名稱為define.asp,則只要在對應asp頁面中加入以下語句就能引入該頁面。

在進行頁面引進時,最好在待引進的asp檔案中不要包含語句。因為在asp檔案中,只能有一句由@來定義的指令碼解析語言。

8、安全防護

asp提供了很好的**保護機制,所有的asp**都在伺服器端執行而只返回給客戶端**執行結果。即便這樣,在老版本的iis中還可以在檔名後面家::$data來檢視asp的源**,這已經屬於web server安全範疇不在本文討論範圍內。下面提出兩點簡單的安全注意事項。

雖然在asp中建議引入檔案以inc作為副檔名,在這裡仍建議以asp作為引檔案的副檔名。當這些**在安全機制不好的web server上執行時,只需在位址列上輸入引入檔案的位址(inc為副檔名),就可以瀏覽該引入檔案的內容,這是由於在web server上,如果沒有定義好解析某型別(比如inc)的動態連線庫時,該檔案以原始碼方式顯示。

不要把資料庫檔案放在**結構內部,這樣,當惡意人士獲取資料庫路徑後,就可以輕易獲取該資料庫,進而肆意更改資料庫內容。比較好的做法是,為資料庫建立dsn(date source name),而在進行資料庫訪問時直接訪問該dsn。

通過本文關於asp編碼的八條原則介紹,希望能夠給你帶來幫助。

本文標題: asp編碼必備的8條原則

本文位址: /wangluo/asp/133276.html

持續交付的8條原則

軟體的發布或部署過程必須是可重複且可靠的。這就引出了下一條 所有操作的自動化!我很難相信 手工操作是可重複且可靠的 這種說法。所以一定要將所有重複性的操作變成自動化的,從而變得可靠。如果某件事情做起來很困難或者讓你覺得很痛苦,那麼就盡早且盡可能頻繁地去做。乍一看上去,這麼做太蠢了,因為人的直覺反應是...

Asp編碼優化技巧8則

asp active server page 是microsoft公司推出的基於pws personal web server iis internet information server 平台的 基於isapi internetserviceapi 原理的動態網頁開發技術,目前日趨成熟完善。在這...

沒有人會教你的10條編碼原則

目前大多數開發者對於編碼有一種固有印象,認為編碼就是利用計算機語言實現一些複雜邏輯或者數學公式,讓計算機能夠按照我們的指令去完成相應的工作。誠然,這樣理解沒有任何問題。但是,真正的編碼技術是不僅寫出機器能夠理解的語言,還要讓人類能夠輕鬆閱讀和理解。換個角度來看,寫好 就相當於寫乙個好故事。首先,你需...