- Login
帳號:
密碼:
ASP MENU
線上教學
   ASP 教學
VB.NET 教學
JSP 教學
JAVA 教學
完整 ASP 教學
程式下載
   ASP 程式下載
提供 ASP 程式
程式量身訂做
   收費標準
填寫需求表
討論交流專區
   程式討論區
電腦資訊交流
工作機會
   社會人就職情報
汎亞人力銀行
大台中人力銀行
大高雄人力銀行
相關連結
   ASP 虛擬空間
ASP 相關網站
聯絡我們
   意見信箱
加入會員程式討論區線上購物回首頁
ASP 教學
利 用 ASP 開 發 網 絡 聊 天 室
利 用 ASP 開 發 網 絡 聊 天 室
合肥 程雙明

   經 常 在Internet 上 衝 浪 的 網 友 恐 怕 很 少 有 人 沒 有 去 過 聊 天 室 胡亂神聊。 你 只 要 稍 微 留 意 一 下 就會 發 現 這 些 聊 天 室 大 多 是 用CGI 程 序 或 者 用JAVA 開 發 的 Applet 維 護 的。 開 發 過 這 類CGI 或Applet 的 程 序 員 都 知 道, 這 種 開 發 工 作 是 費 時 費 力 的。 那 麼 有 沒 有 一 種 更 簡 單、 省 力 的 開 發 方 式 呢 ? 答 案 是 肯 定 的。
   關 於ASP 的介紹有許多計算機雜誌介紹過,在這堣ㄕb贅 述。
   一、 聊 天 室 的 規 劃:
   1、 談 話 內 容 儲 存 方 式 的 選 擇: 在 客 戶 機 上 顯 示 即 時 談 話 的 內 容 應 以 什 麼 方 式 儲 存 在 服 務 器 呢 ?ASP 有 兩 種 選 擇, 一 種 是 以 文 本 文 件 方 式, 一 種 是 以 數 據 庫 方 式。 但 筆 者 感 覺ASP 對 文 本 文 件 操 作 的 指 令 遠 不 如ADO(Active Data Object) 提 供 的 對 數 據 庫 操 作 的 指 令 多。 所 以 利 用ADO,ASP 能 對 數 據 庫 靈 活 地 操 作, 比 如 插 入、 刪 除、 更 新、 查 詢 等 等。 筆 者 選 擇Access 數 據 庫 來 儲 存 談 話 的 內 容。 該 數 據 庫 內 容 只 保 留 一 天( 可 根 據LAN 的 實 際 情 況 確 定 時 間 長 短) 的 談 話 內 容。
   2、 聊 天 室 界 面 的 設 計: 為 了 客 戶 能 夠 方 便 地 瀏 覽 站 點 的 內 容, 又 能 盡 可 能 地 顯 示 聊 天 室 的 內 容, 筆 者 在 一 幅 主 頁 設 計 了 三 幀。 左 邊 一 幀 顯 示 的 是 站 點 的Index。 右 邊 一 幀 又 分 成 上 下 兩 幀。 上 幀 佔70%, 用 來 顯 示 當 前 聊 天 室 的 內 容; 下 幀 佔30%, 用 來 提 供 一 個 文 本 輸 入 框 和 供 用 戶 反 饋 的 按 鈕。
   3、 進 入 聊 天 室 的 步 驟: 象 大 多 數 聊 天 室 一 樣, 首 先 應 該 提 供 給 用 戶 一 個 登 錄 界 面, 由 用 戶 輸 入 自 己 的 名 字 或 別 名 和 自 己 隨 意 給 定 的 密 碼。 如 果 輸 入 的 用 戶 名 與 線 的 用 戶 名 相 同, 則 提 示 用 戶 重 新 選 擇 用 戶 名 或 重 新 輸 入 密 碼, 以 保 證 在 線 的 所 有 用 戶 名 都 是 唯 一 的。 登 陸 成 功 後 進 入 聊 天 室, 內 容 顯 示 幀 顯 示“ 歡 迎 加 入” 的 歡 迎 信 息。 用 戶 就 可 以 在 文 本 輸 入 區 內 輸 入 談 話 內 容 了。
   二、 設 計 過 程 和 開 發 技 巧:
   1、 設 計ODBC 系 統 數 據 源: 如 前 所 述, 本 開 發 採 用ASP 對 ADO 進 行 操 作, 因 此 必 須 先 對 數 據 源 進 行 設 置。 在NT 服 務 器 的 控 制 面 板 雙 擊ODBC 圖 標, 在 系 統DSN 頁 添 加 系 統DSN, 選 擇Microsoft Access Driver,Data Source Name 為‘fybchat’, Database 選 擇Chat 目 錄 下 的chat.mdb. 該 數 據 庫 包 括 下 面 幾 個 字 段:name, content, password, chattime, chatdate, 分 別 以 來 存 儲 姓 名、 談 話 內 容、 密 碼、 談 話 時 間 和 談 話 日 期。
   2、 登 錄 界 面 設 計: 登 錄 界 面 為 一html 頁, 包 含 一 些 警 告 信 息 和 一 個Form。 該Form 以 來 獲 取 帳號和 密 碼, 如 下 所 示:


  <form method="post" action="receivedata.asp">帳號:
  <input type="text" name="usname" >密 碼:
  <input type="password" name="uspassword" >
  </center >< br >< br > < center >
  <input type="submit" value=" 進 入" >
  <input type="reset" value=" 重 填" >
  </center >
  <input type="hidden" name="content" value="" >
  </form>

   通 過 提 交 按 鈕 來 激 發receivedata.asp。 該ASP 文 件 主 要 來 保 證 在 聊 天 室 沒 有 兩 個 用 戶 是 同 帳號 的。 用 戶 提 交 信 息 後, 該 文 件 打 開chat.mdb 檢 查 是 否 已 經 有 該帳號, 如 果 有 但 密 碼 不 對 就 提 醒 用 戶 重 新 輸 入 密 碼, 如 果 沒 有 那 麼 用 戶 就 順 利 進 入 了 聊 天 室。 進 入 聊 天 室 界 面 的 功 能 由 下 列 語 句 完 成:


    <FRAMESET ROWS="70%,30%" >
    <FRAME SRC="forum.asp" NAME="main" MARGINWIDTH="1"   
     MARGINHEIGHT="1" Noresize >
    <FRAME SRC="frft.asp?kname= <% =name%>" NAME="footnotes"
     MARGINWIDTH="1" Noresize >
    </FRAMESET >


   注 意 這 有 一 個 技 巧, 通 過 參 數kname 將 用 戶 的 帳號 隱 藏 在 客 戶 的 瀏 覽 器 面 了, 這 樣 一 來, 用 戶 每 次 提 交 談 話 內 容 的 同 時 也 把 他 的帳號提 交 了。
   3、 文 本 輸 入 區 的 設 計: 文 本 輸 入 區 是 由frft.asp 產 生 的。 如 上 所 述, 用 戶 每 次 提 交 談 話 內 容 的 同 時 也 把 他 的 帳號 提 交 了, 用 戶 提 交 談 話 內 容 的 動 作 是 激 活forum.asp。 forum.asp 的 作 用 是 刷 新 聊 天 室 的 內 容。Frft.asp 內 容 如 下:


<!DOCTYPE HTML PUBLIC " -//IETF//DTD HTML//EN" >
<html >
<head >
<meta http-equiv="Content-Type" content="text/html; charset=gb_2312-80" >
<meta name="GENERATOR" content="Microsoft FrontPage 2.0" >
<title >
</head >
<body >
<% kname=request.QueryString("kname")% >
<base target="main" >
<form name="fm1" method="POST" action="forum.asp">
 <p align="center" ><input type="text" size="90" name="content" >  <p align="center" ><input type="button" name="B1" value=" 提 交/ 刷 新" >
 <input type="reset" name="B2" value=" 重 寫" >< /p >
 <input type="hidden" name="kname" value=< % =kname% >>
</form >
<SCRIPT LANGUAGE="VBScript" >
  <!--
    Sub IeTimer1_Timer()
      if fm1.content.value="" then
       fm1.content.value=""
       fm1.submit
      end if
    end sub
    
    sub b1_onclick()
      fm1.submit
      fm1.content.value=""
    end sub
   -->
</SCRIPT >
<OBJECT ID="IeTimer1" WIDTH=39 HEIGHT=39 CLASSID="CLSID:59CCB4A0-727D- 11CF-AC36-00AA00A47DD2" CODEBASE=" " target="_blank">http://208.208.208.201/asp/ietimer.ocx" >
 <PARAM NAME="_ExtentX" VALUE="1005" >
 <PARAM NAME="_ExtentY" VALUE="1005" >
 <PARAM NAME="Interval" VALUE="7000" >
</OBJECT >
</body>
</html >

  這 時 又 出 現 了 一 個 問 題, 用 戶 必 須 不 停 提 交 才 能 看 到 最 新 的 聊 天 室 內 容, 這 顯 然 給 用 戶 帶 來 了 不 便。 於 是 考 慮 用 一 個timer 的ActiveX 控 件 來 控 制 聊 天 室 的 內 容 豈 不 更 好 ? 於 是 選 用 了Ietimer, 如 上< object > … …< /object > 所 引 用, 每 隔7 秒 鐘 聊 天 室 內 容 自 動 更 新 一 次。 這 樣 即 使 用 戶 不 想 參 加 聊 天 也 可 以 坐 在 機 器 邊 看 別 人 聊 天 了。
   三、 總 結
   由 上 述 開 發 過 程 我 們 可 以 知 道, 利 用ASP 程 序 可 以 很 靈 活 地 傳 遞 參 數, 並 且 可 以 很 靈 活 地 將 程 序 流 程 分 割 成 幾 個 單 獨 的ASP 程 序, 非 常 利 於 程 序 的 調 試, 對ActiveX 控 件 的 支 持 和 對DAO 的 強 大 操 作 能 力 使 得 利 用 ASP 能 夠 開 發 功 能 非 常 強 大 的 程 序。



頂端
本網頁最佳瀏覽模式為:瀏覽器 IE4.0 以上    解析度: 800 x 600
Copyright © 2000-2019 COOLASP All Rights Reserved