Active Server Page,簡稱ASP,是:
l連接網友界面(HTML)和商業邏輯(Business Logic);
l提供一致的、容易使用的、有狀態保持的、基于WEB的客戶端;
l為那些需要事務處理的WEB 應用提供應用程序環境。
ASP不是:
l 實現商業邏輯(Business Logic)的地方;商業邏輯應該通過COM+、MTS或者數據庫來實現。
ASP的使用者應該有下面的教訓:
l 開發應用程序,而不是開發一個一個的孤立ASP頁面;
l 對輸入和輸出進行緩存;
l 在發布之前要測試;
l 選擇性能較好的部件;
l 減少數據庫的存。壕彺孀儞Q后的結果;
l 使用MSMQ來處理有時間延遲的工作;
站點設計
u 你的站點想提供什么?
u 信息架構:80/20準則;
u 站點導航;
u 頁面布局;
u 可用性;
n 使用ALT和Title屬性;
n 不使用圖片或者Image Map的導航;
u 適合大多數低版本瀏覽器,考慮他們對ActiveX、RDS、XML、DHTML、Java Applet的支持狀況;
u 屏幕分辨率和屏幕顏色數
n 是否支持WebTV、PDA…?
n 設置IMG的width和height屬性。
u 非瀏覽器的訪問,如自動機器人(Spider);
u 使用幀(Frame)?
u 使用Cookies的個性化;
u 避免壞連接;
u 使用meta標簽;
u 內容審核;
u 內容檢索;
u 結果反饋:用戶反饋和跟蹤;
u 減少下載時間;
三層、四層應用設計
可讀性、可維護性
u 使用注釋;
u 在VBScript腳本中使用<%Option Explicit%>;
u 使用字符串變量存儲SQL字符串:便于調試;
u 使用Server.MapPath和相對路徑;
u 使用ADODB.INC或者<!—metadata typelib=somelib file=somedll-->來引用常量,不要直接使用常量數值。
u 指定ADO調用的缺省參數,避免出錯;
u 使用庫或者部件來封裝代碼。
正確的方法:
u 使用Server.URLEncode
u 錯誤捕獲和處理
國際化:
u 使用<%CodePage%>
u 使用Session.CodePage
u 在IIS5.0中,Response.write支持UTF8
其他:
u 使用#include 重用代碼
u 使用分頁技術
站點安全:
u 客戶身份驗證
u 輸入驗證
u #include 文件不要使用.INC后綴,使用.ASP或者設置.INC的應用程序映射
u 把MDB文件存放在非WEB路徑下;
u 使用ADSI做安全管理
Session和Application狀態
Session的使用:
u 使用起來很方便但是很有問題;
u HTTP是一個無狀態的協議;
u 設計購物推車特別有用;
u 不利于可伸縮性設計(Scalability);
u 在不需要Session的頁面中使用<%EnableSessionState=false%>
u 盡可能完全避免使用Session;
u 在多個web服務器情況下不適合;
u 某些部件使Session運行在單一線程模式,減少了吞吐量;
u 消耗內存;
u Session有超時的問題
u 需要客戶端的瀏覽器打開cookie設置;
u 不要在session中保存recordset,或者緩存connection對象;
u 在global.asa不要使用空的Session_OnEnd;
u 可選方案:
n cookies
u 直接狀態編碼:簡單、容易、不安全
u 后端數據庫的ID作為狀態值
n querystring 參數
n 如amazon的url方式
n 隱藏的表單
Application變量:
u 共享變量
u 不能持久保存
u 多個web服務器時不行,除非只是只讀變量。
緩存
u 對靜態內容非常理想
u 不要使用Response.Expires=0,使用負數:
n Response.Expires=-10000;
n Response.AddHeader “Pragma”,”no-cache”
uResponse.AddHeader “cache-control”,”no-store”
u 服務器緩存
u proxy緩存
u 客戶端緩存
部件
u 性能
u 伸縮性
u 分離商務邏輯和頁面表現
u 被ASP或其他環境重用
u 事務處理
u 類型安全
u 存取操作系統特性
u 保護知識產權
u 在下列情況下使用Server.CreateObject:
n MTS事務處理
n 上下文安全性
n ASP內部部件
n OnStartPage、OnEndPage
u 使用
延伸閱讀
文章來源于領測軟件測試網 http://www.kjueaiud.com/