变态重口极致另类在线-波多久久夜色精品国产-波多野结衣在线观看一区-波多野结衣在线观看一区二区-污污的网站免费阅读-污污视频网址

當前位置: 首頁IT技術 → 四招幫你優(yōu)化ASP程序

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

更多
這篇問題將提供給大家四種優(yōu)化ASP應用程序的技巧,希望能夠幫助到大家。

  1.將經常使用的數據緩存在 Application 或 Session 對象中

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

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

<%
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
%>

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

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

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

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

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

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

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

  3.處理內嵌腳本和Response.Write語句

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

  例如,在下面的示例中,在每一行的每一字段對響應流有一次寫操作,每一行在 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>

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

<%
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>?)
%>

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

  4.避免重新確定數組的維數

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

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

熱門評論
最新評論
發(fā)表評論 查看所有評論(0)
昵稱:
表情: 高興 可 汗 我不要 害羞 好 下下下 送花 屎 親親
字數: 0/500 (您的評論需要經過審核才能顯示)
主站蜘蛛池模板: 亚洲欧美一区二区三区另类 | 久久午夜夜伦伦鲁鲁片 | 大又大又粗又爽又黄毛片女人 | 亚洲国产婷婷综合在线精品 | 亚洲国产成人久久综合区 | www.午夜剧场 | 夜夜爽夜夜叫夜夜高潮漏水 | 免费一级在线 | 天天舔天天爱 | 国产丰满眼镜女在线观看 | 亚洲一区二区三区免费看 | 老妇女黄色片 | 国产成人成人一区二区 | 亚洲日产综合欧美一区二区 | 亚洲视频第一页 | 天天se天天cao | 天天精品| 亚欧乱色视频 视频在线 | 欧美日韩性高爱潮视频 | 中文字幕日本不卡一二三区 | 天天操女人 | 日韩成人在线播放 | 一级成人毛片免费观看 | 国产一区二区精品在线观看 | 三级经典三级日本三级欧美 | 亚洲欧美一区二区视频 | 久久天天躁狠狠躁夜夜免费观看 | 亚洲aaa视频 | 欧美精品一区视频 | 国产亚洲欧美日本一二三本道 | 国产精品每日更新 | 欧美一级网 | 国产麻豆精品在线观看 | 九九99久麻豆精品视传媒 | 每日更新国产 | 人人射人人 | 国产成人精品男人免费 | 一级黄色在线视频 | 成人在线激情视频 | 欧美一级专区免费大片俄罗斯 | 香蕉大伊亚洲人在线观看 |