国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

如何寫出優秀的ASP應用

2019-11-18 20:00:08
字體:
來源:轉載
供稿:網友
怎樣創建性能棒、正確性、可維護性和性能俱佳的asp應用程序?要做什么?不做什么?本文以提綱的形式,給出了主要的Check-Points(檢查點)。

什么是ASP

Active  Server  Page,簡稱ASP,是:

□ 連接網友界面(HTML)和商業邏輯(Business  Logic);

□ 提供一致的、容易使用的、有狀態保持的、基于WEB的客戶端;

□ 為那些需要事務處理的WEB  應用提供應用程序環境。


ASP不是:

□ 實現商業邏輯(Business  Logic)的地方;商業邏輯應該通過COM+、MTS或者數據庫來實現。


ASP的使用者應該有下面的教訓:

□ 開發應用程序,而不是開發一個一個的孤立ASP頁面;

□ 對輸入和輸出進行緩存;

□ 在發布之前要測試;

□ 選擇性能較好的部件;

□ 減少數據庫的存取:緩存變換后的結果;

□ 使用MSMQ來處理有時間延遲的工作;


站點設計
□ 你的站點想提供什么?

□ 信息架構:80/20準則;

□ 站點導航;

u  頁面布局;

u  可用性;

n  使用ALT和Title屬性;

n  不使用圖片或者Image  Map的導航;

□ 適合大多數低版本瀏覽器,考慮他們對ActiveX、RDS、xmlDHTMLjava  Applet的支持狀況;

□ 屏幕分辨率和屏幕顏色數

□ 是否支持WebTV、PDA…?

□ 設置IMG的width和height屬性。

□ 非瀏覽器的訪問,如自動機器人(Spider);

□ 使用幀(Frame)?

□ 使用Cookies的個性化;

□ 避免壞連接;

□ 使用meta標簽;

□ 內容審核;

□ 內容檢索;

□ 結果反饋:用戶反饋和跟蹤;

□ 減少下載時間;


三層、四層應用設計

可讀性、可維護性

□ 使用注釋;

□ 在VBScript腳本中使用<%Option  Explicit%>;

□ 使用字符串變量存儲SQL字符串:便于調試;

□ 使用Server.MapPath和相對路徑;

□ 使用ADODB.INC或者<!—metadata  typelib=somelib  file=somedll-->來引用常量,不要直接使用常量數值。

□ 指定ADO調用的缺省參數,避免出錯;

□   使用庫或者部件來封裝代碼。


正確的方法:


□ 使用Server.URLEncode

□ 錯誤捕獲和處理

國際化:


□ 使用<%CodePage%>

□ 使用session.CodePage

□ 在IIS5.0中,Response.write支持UTF8


其他:

□   使用#include  重用代碼

□ 使用分頁技術

站點安全:

□ 客戶身份驗證

□ 輸入驗證

□   #include  文件不要使用.INC后綴,使用.ASP或者設置.INC的應用程序映射

□ 把MDB文件存放在非WEB路徑下;

□ 使用ADSI做安全管理


Session和application狀態
Session的使用:

□ 使用起來很方便但是很有問題;

□   HTTP是一個無狀態的協議;

□ 設計購物推車特別有用;

□ 不利于可伸縮性設計(Scalability);

□   在不需要Session的頁面中使用<%EnableSessionState=false%>

□   盡可能完全避免使用Session;

□   在多個web服務器情況下不適合;

□   某些部件使Session運行在單一線程模式,減少了吞吐量;

□   消耗內存;

□   Session有超時的問題

□ 需要客戶端的瀏覽器打開cookie設置;

□ 不要在session中保存recordset,或者緩存connection對象;

□   在global.asa不要使用空的Session_OnEnd;

□   可選方案:

□   cookies

□   直接狀態編碼:簡單、容易、不安全

□   后端數據庫的ID作為狀態值

□   querystring  參數

□   如amazon的url方式

n  隱藏的表單


Application變量:

□   共享變量

□   不能持久保存

□   多個web服務器時不行,除非只是只讀變量。

緩存
□   對靜態內容非常理想

□   不要使用Response.Expires=0,使用負數:

□   Response.Expires=-10000;

□   Response.AddHeader  “PRagma”,”no-cache”

□ Response.AddHeader  “cache-control”,”no-store”

□ 服務器緩存

□   proxy緩存

□  客戶端緩存


部件

□ 性能

□ 伸縮性

□分離商務邏輯和頁面表現

□  被ASP或其他環境重用

□  事務處理

□  類型安全

□  存取操作系統特性

□  保護知識產權

□  在下列情況下使用Server.CreateObject:

□  MTS事務處理

□  上下文安全性

□  ASP內部部件

□  OnStartPage、OnEndPage

□  使用<Object  RunAt=server>延遲對象初始化

□  是否保存到Session或者Application變量中


性能

n  Response緩沖:Response.Buffer=True

n  關閉Connection并:set  Connection=Nothing

n  使用局部變量

n  用<Object  >代替Server.CreateObject

n  不要使用Session和Application變量

n  不要將COM對象存儲在Session或者Application變量中

n  關閉腳本調試

n  避免重復的字符串相加

n  在費時的頁面頂端使用Response.IsClientConnected

n  使用MSMQ

n  不要在Session或者Application中存儲大數組

n  不要ReDim  數組

n  將集合類型的對象賦給臨時變量

n  減小微處理器的最大線程數(運行regedt32,在HKEY_LOCAL_MACHINESYSTEM  CurrentControlSetServicesw3SVCASPParameters,增加ProcessorThreadMax,減小這個值,看看性能的變化;或者增大這個值。)

n  設置AspScriptEngineCacheMax,使它等于ProcessorThreadMax*CPU個數。缺省的是30;(在系統路徑下:system32inetsrv/adminisamples下,鍵入adsutil.vbs,設置/w3svc/AspScriptEngineCacheMax);

n  減少Session.Timeout;

n  在MMC中,設置ASP應用程序緩沖為有效。


把某些工作交給客戶端:

n  CSS、DHTML

n  XML

n  RDS

n  Remote  Scripting

n  xmlhttp

n  客戶端驗證

n  減小文件大小

n  盡可能避免https和SSL

n  使用Response.End測試性能

 


數據庫

n  減少數據庫存取訪問;

n  緩存變換后的結果;

n  使用ODBC連接池和OLEDB資源池;

n  使用系統DSN或者非DSN,不要使用DSN或者文件DSN;

n  使ADO運行在雙線程模式(Both-threaded):makefre.bat;

n  使用ADO的Field對象;

n  GetString或者GetRows比較快;

n  RDS和XML把負載嫁到客戶端;

n  不要使用Select  *,把字段寫出來;

n  盡量使用SQL  Server  7,不要使用access

n  使用SQL  Server的特性:存儲過程、Job、Join、sort、group

n  使用SQL  Analysis,優化SQL的性能

n  使用索引

n  本地使用Name-pipes,遠程使用Sockets

n  準確地指定Command  Type


IIS  5的新特性

n  可靠的重新啟動

n  ASP性能提高

n  Server.Transfer比Server.Redirect更好

n  Server.Execute

n  Server.GetLastError


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 达尔| 营口市| 怀安县| 阳城县| 喀喇沁旗| 银川市| 北海市| 兴业县| 景洪市| 乌拉特后旗| 丰宁| 绥芬河市| 达孜县| 青龙| 章丘市| 西林县| 镇江市| 通榆县| 酒泉市| 泰宁县| 察隅县| 华亭县| 迁西县| 奉新县| 宣汉县| 邳州市| 伊春市| 上饶县| 嘉荫县| 牡丹江市| 洛阳市| 军事| 汝阳县| 周宁县| 含山县| 威宁| 虎林市| 平泉县| 英吉沙县| 武安市| 正定县|