在開始設計一個ASP站點的時候,面對著一大堆的問題,到底要怎麼樣入手,才能讓網站設計做到快,好,而且調試、更改,移植起來又方便呢?下面以留言本的設計為例子,談談站點的設計。
(一)站點的功能
“磨刀不誤砍柴工”,先寫出站點的功能,對以後的工作有很大的幫助。現在來設計一個留言本,功能如下:
1、單用戶版。只有一個管理員,所有人都可以留言,可以搜索留言
2、記錄下每個留言者的 ip,QQ,頭像,姓名,主頁,電子郵件,留言時間,留言內容;
3、有管理員回復功能。如果已經回復,還可以更改回復的內容。記錄回復的時間;
4、記錄主頁的位置,以便快速回到主頁。
5、自定義的頁頭和頁腳。顯示特定的信息。
6、將數據存到Access數據庫
7、管理功能:管理員登錄/回復/刪除/更改管理員密碼/更改顯示的留言數/更改主頁
(二)站點數據庫
一般ASP站點都要用到數據庫,首先設計好數據庫,在使用時才不會為了一個字段而去查詢或更改數據庫的設計。特別是對大型的網站,好的數據庫設計可以影響到整個網站的運行情況。現在我們來設計留言本的數據庫:
1、數據庫名:lyb.mdb
2、表:共有二個表
表一: admin
字段名 類型 長度 其它 說明
admin_user 文本 15 不允許空值/主鍵 管理員用戶名
admin_pass 文本 15 不允許空值 管理員密碼
admin_http 文本 50 可為空值 主頁地址
admin_perpage 數字/整型 小數為0
表二: main
字段名 類型 長度 其它 說明
user_id 自動編號
user_name 文本 15 不為空 姓名
user_image 文本 30 不為空 頭像文件名
user_ip 文本 15 不為空 IP地址
user_oicq 文本 10 可為空 QQ號
user_http 文本 50 可為空 主頁
user_email 文本 50 可為空 電子郵件
user_time 日期 長日期 留言時間
user_ly 文本 255 不為空 留言內容
user_replay 是/否 是否回復
user_rply 文本 255 可為空 回復內容
user_rptime 日期 長日期 回復時間
留言本的數據庫比較簡單,如果是大型網站,在數據庫設計好後要反復檢查。所有的字段名最好用命名標准,在數據庫設計完成後,最好能打印出一份象上面的列表來,以方便使用。
(三)站點的文件設計
文件的設計主要是設計有多少個文件,每個文件分別包含哪些內容,以及之間的關系。以留言本為例,文件設計如下:
1、 inc.ASP 有關函數和常數,包括打開數據庫函數,打開表函數,文字處理函數
2、top.htm 頁頭信息
3、bottom.htm 頁腳信息
4、index.asp 留言本主頁面。包括顯示留言,管理員登錄,修改參數,回復留言。引用inc.ASP;
5、main.CSS CSS文件;
6、tou.htm 頭像列表文件;
7、image 文件夾,存頭像及其它圖片;
(四)站點的頁面設計
頁面設計主要是設計頁面的風格和布局。這部份內容比較多,一般是先定位整個頁面的風格,然後設計所有的插圖和Flash,再設計CSS,最後設計每個頁面。對於頁面有重復的內容,先設計單個的內容。這裡僅列出index.ASP的大致設計,如下:
'引用 inc.ASP
<%
'處理參數
'留言子程序
'登錄子程序
'回復子程序
'刪除子程序
'修改參數子程序
'退出登錄子程序
%>
<Html>
<head>
<!-引用CSS-!>
<title>留言本</title>
<body>
'引用top.htm
'顯示留言表單
'顯示搜索表單
'顯示留言記錄
'引用bottom.htm
</body>
</Html>
當然,在頁面設計階段,並不要寫出子程序,只要把顯示的各部份做好就行了
(五)站頁的代碼設計
主要就是完成ASP代碼的設計。在這裡只談談如何讓站點的可修改性和可移植性加強。只有一點:多用組件或者是函數,當然如果寫成類就更好了。對於小站點,也不希望到每個頁面的某個子程序再去用 set conn=server.createobject("adodb.connection"),而是把它寫成一個函數或子程序,放在頁面裡,比如:
<%
databasename="lyb.mdb"
uid=""
pid=""
sub opendb(connect)
set connect=server.CreateObject("ADODB.connection")
connect.ConnectionString="DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" &_
server.MapPath(databasename) &";uid="&uid&";pid="&pid
connect.Open strconn
end sub
%>
這樣,當你改變數據庫名或是用戶名和密碼的時候,很方便的能修改過來。經過一段時間的積累,你會有許多這樣的函數或子程序,或是類,再做類似的站點的時候,只要整理出相關的放在一個文件裡引用一下就好了。