免费体验120秒视频_榴莲榴莲榴莲榴莲官网_2021国产麻豆剧果冻传媒入口_一二三四视频社区在线
當(dāng)前位置:首頁文章首頁 IT學(xué)院 IT技術(shù)

四招幫你優(yōu)化ASP程序

作者:  來源:  發(fā)布時間:2011-6-21 15:07:40  點擊:
這篇問題將提供給大家四種優(yōu)化ASP應(yīng)用程序的技巧,希望能夠幫助到大家。

  1.將經(jīng)常使用的數(shù)據(jù)緩存在 Application 或 Session 對象中

  ASP的Application和Session對象為將數(shù)據(jù)暫存在內(nèi)存中提供了方便的容器。你可以將數(shù)據(jù)指派到 Application和Session對象中,這些數(shù)據(jù)在HTTP調(diào)用之前保留在內(nèi)存中。Session數(shù)據(jù)是按每個用戶分別存儲的,而Application數(shù)據(jù)則在所有用戶之間共享。

  什么時候?qū)?shù)據(jù)裝載到 Application 或 Session 中呢?通常,數(shù)據(jù)是在啟動 Application 或 Session 時裝載。要在Application或Session啟動過程中裝載數(shù)據(jù),應(yīng)將適當(dāng)?shù)拇a分別添加到Application_OnStart()或Session_OnStart()中。這些函數(shù)應(yīng)該在 Global.asa 中,如果沒有,我們可手工添加進(jìn)這些函數(shù)。還可以在第一次需要時裝載該數(shù)據(jù)。為此,在 ASP 頁中添加一些代碼(或編寫一個可重復(fù)使用的腳本函數(shù)),以檢查數(shù)據(jù)是否存在,如果不存在,就裝載數(shù)據(jù)。這是一個傳統(tǒng)提高性能的技術(shù),稱為“惰性計算”,即在你知道需要某一個值以前不計算該值。程序舉例如下:

<%
Function GetEmploymentStatusList
Dim d
d = Application(?EmploymentStatusList?)
If d = ?? Then
' FetchEmploymentStatusList function (not shown)
' fetches data from DB, returns an Array
d = FetchEmploymentStatusList()
Application(?EmploymentStatusList?) = d
End If
GetEmploymentStatusList = d
End Function
%>

  我們可以為所需要的每個數(shù)據(jù)塊編寫類似的函數(shù)。

  2.將代碼封裝在 COM 對象中

  如果你的Web應(yīng)用程序中有許多 VBScript 或JScript代碼,你可以經(jīng)常將代碼移到編譯的 COM 對象中,從而可改善性能。將代碼封裝在 COM 對象中還有一些除提高性能之外的其他優(yōu)點:

  (1)COM 對象有利于將表示邏輯與業(yè)務(wù)邏輯分開;

  (2)COM 對象可以保證代碼重復(fù)使用;

  (3)用VB、VC++ 或 Visual J++ 編寫的代碼比 ASP 更容易調(diào)試。

  COM對象也有缺點,包括初始化時間長和需要不同的程序設(shè)計技巧。值得注意的是,在少量ASP代碼被封裝進(jìn) COM 對象時,可能不會使性能有所改進(jìn),反而會引起性能下降。這種情況通常是創(chuàng)建和調(diào)用 COM 對象的系統(tǒng)開銷超過了編譯代碼的系統(tǒng)開銷。因此,我們需要反復(fù)地試驗,以確定什么樣的 ASP 腳本和 COM 對象代碼的組合可以產(chǎn)生最好的性能。

  3.處理內(nèi)嵌腳本和Response.Write語句

  VBScript 語法的<% = expression %>是將“expression”的值寫到ASP輸出流中。如果響應(yīng)緩沖未啟用,那么執(zhí)行其中的每一條語句都會以許多小的數(shù)據(jù)包通過網(wǎng)絡(luò)將數(shù)據(jù)寫到瀏覽器中。這樣,執(zhí)行速度很慢,而且穿插執(zhí)行少量的腳本和 HTML,將會引起腳本引擎和 HTML 之間的切換,從而極大地降低了性能。因此,我們可以使用下面的技巧,即使用 Response.Write 調(diào)用代替捆綁緊密的內(nèi)嵌表達(dá)式。

  例如,在下面的示例中,在每一行的每一字段對響應(yīng)流有一次寫操作,每一行在 VBScript 和 HTML 之間有多次切換:

<table>
<% For Each fld in rs.Fields %>
<th><% = fld.Name %></th>
<%
Next
While Not rs.EOF
%>
<tr>
<% For Each
fld in rs.Fields %>
<td><% = fld.Value %></td>
<% Next
</tr>
<% rs.MoveNext Wend %>
</table>

  為了使上面的代碼運行效率更高,我們可以利用下面的代碼,代碼的每一行對響應(yīng)流有一次寫操作,所有的代碼都包含在一個VBScript程序內(nèi):

<%
Response.Write(?<table>?)
For each fld in rs.Fields
Response.Write (?<th>? && fld.Name && ?</th>? && vbCrLf)
Next
While Not rs.EOF
Response.Write (?<tr>?)
For Each fld in rs.Fields %>
Response.Write(?<td>? && fld.Value && ?</td>? && vbCrLf)
Next
Response.Write(?</tr>?)
Wend
Response.Write(?</table>?)
%>

  當(dāng)禁用響應(yīng)緩沖時,這一技巧的效果特別明顯。最好啟用響應(yīng)緩沖,然后看批處理 Response.Write 是否有助于提高性能。

  4.避免重新確定數(shù)組的維數(shù)

  在應(yīng)用數(shù)組時,我們應(yīng)盡量避免使用Redim數(shù)組。就性能而言,如果計算機的物理內(nèi)存大小有限,最好將數(shù)組的初始維數(shù)設(shè)置為其最不利的情況,或者將維數(shù)設(shè)置為其最佳的情況,然后再按需要重新確定維數(shù)。

  在開發(fā)ASP的Web應(yīng)用程序過程中,充分利用以上技巧會使你的Web程序具有較高的執(zhí)行性能。

相關(guān)軟件

相關(guān)文章

文章評論

軟件按字母排列: A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
免费体验120秒视频_榴莲榴莲榴莲榴莲官网_2021国产麻豆剧果冻传媒入口_一二三四视频社区在线
主站蜘蛛池模板: 国产福利影院| 国产免费一期二期三期四期| 渣男渣女抹胸渣男渣女app| 极品国产人妖chinesets| 小四郎在线观看| 欧美三级电影免费| 亚洲va久久久噜噜噜久久| 欧美zoozzooz在线观看| 欧美aaaaaaaaaa| 99久久精品免费视频| 二区国产| 亚洲喷奶水中文字幕电影| 欧美国产精品久久| 久久精品卫校国产小美女| 99久久伊人精品综合观看| 乱人伦人妻中文字幕在线入口| 性爱宝典| 日本精高清区一| 国产性夜夜春夜夜爽| 国产精品视频永久免费播放| 亚洲午夜精品久久久久久浪潮 | 国产乱了真实在线观看| 人妻少妇精品久久久久久| 琪琪色原网站在线观看| 国产jizzjizz视频免费看| 特级西西人体444WWw高清大胆| 日韩一区二区三区免费体验| 黄色三级电影免费观看| 啄木乌欧美一区二区三区| 日韩色日韩视频亚洲网站| 欧美高清国产在线观看| 国产国语videosex| 亚洲区与欧美区| 精品乱子伦一区二区三区| 国产精品国色综合久久| 内射中出无码护士在线| 永久在线观看www免费视频| 国产日产综合| 白丝女班长被弄得娇喘不停| 亚洲五月综合| 99爱在线精品视频网站|