亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于CallBack機制實現(xiàn)的實時互動服務(wù)系統(tǒng)設(shè)計

        2019-07-23 02:20:04鐘秋亭
        鞍山師范學院學報 2019年2期
        關(guān)鍵詞:咨詢服務(wù)控件頁面

        鐘秋亭

        (鞍山師范學院 圖書館,遼寧 鞍山 114007)

        網(wǎng)絡(luò)技術(shù)改變了交流方式,以溝通交流為基礎(chǔ)的圖書館信息咨詢服務(wù)建立了形式多樣的服務(wù)系統(tǒng),有外購的專門系統(tǒng)型,有借助免費工具的網(wǎng)絡(luò)平臺型.本文所研究設(shè)計的基于網(wǎng)頁交流形式的服務(wù)系統(tǒng),搭建了信息交流溝通平臺,彰顯了圖書館的專業(yè)信息咨詢服務(wù)特色.

        1 信息咨詢服務(wù)系統(tǒng)的規(guī)劃

        本文利用ASP.NET的CallBack機制和改進的WebPart控制組和DataSource控件等技術(shù)實現(xiàn)實時互動的信息咨詢服務(wù)系統(tǒng),解決了頁面不斷刷新加載而造成的頁面閃爍、停滯等問題,為信息咨詢服務(wù)提供了順暢交流的系統(tǒng)平臺[1-4].

        1.1 系統(tǒng)實現(xiàn)的理論基礎(chǔ)

        ASP.NET的Postback和Callback均可以實現(xiàn)對服務(wù)器請求頁面信息的功能,Postback對服務(wù)器請求保存上一次的請求頁面狀態(tài),而客戶端與服務(wù)端的交互默認依然是整頁面提交,加重了網(wǎng)絡(luò)數(shù)據(jù)傳輸負擔,加大了服務(wù)器的工作壓力,而且用戶還需要付出時間等待最終處理結(jié)果[2].

        ASP.NET在2.0版增加了Callback機制,實現(xiàn)了通過客戶端系統(tǒng)網(wǎng)頁腳本向服務(wù)器端傳遞相應(yīng)的信息數(shù)據(jù),服務(wù)器端以接收到的數(shù)據(jù)進行查詢和處理,最后將結(jié)果回傳到客戶端進行顯示.ASP.NET提供了實現(xiàn)無刷新回調(diào)接口IcallbackEventHandler,該接口分別定義了RaiseCallbackEvent和GetCallbackResult.通過它們實現(xiàn)接受客戶端傳遞的信息數(shù)據(jù),再將所得到的結(jié)果傳回給客戶端的系統(tǒng)頁面.Callback減輕了數(shù)據(jù)傳輸負擔,緩解了服務(wù)端的工作壓力,并且具有異步性[3].

        1.2 系統(tǒng)功能的設(shè)計

        這個咨詢服務(wù)系統(tǒng)的主頁僅在一個頁面通過WebPart和菜單組合機制來實現(xiàn)各項功能,其整體效果如圖1所示.

        圖1是信息咨詢系統(tǒng)所有功能全部顯示的頁面,每部分功能均采用WebPart機制,用戶可以根據(jù)喜好而取舍任何一個WebPart,或進行位置的改變.

        其中“在線咨詢”和“交流信息”兩個WebPart就是利用CallBack機制,通過自動讀取傳輸數(shù)據(jù)實現(xiàn)的互動交流功能.而“信息公告”和“待辦事務(wù)”這些功能是通過非常方便的ASP.NET信息訪問機制DataSource完成的.

        圖1 功能顯示頁面

        1.3 系統(tǒng)部件的設(shè)計

        除了主頁,獨立的頁面還有登錄機制的Login頁面,其它的子功能采用WebPart方式整合在系統(tǒng)中,整個系統(tǒng)的各項規(guī)劃設(shè)計如圖2所示.

        圖2 系統(tǒng)規(guī)劃設(shè)計圖

        咨詢系統(tǒng)中的每個功能的WebPart都有自己的文件夾,其中大多都有兩個文件,如圖2中信息公告文件夾中的兩個文件.其中的.ascx文件是功能的WebPart,被存放在主頁中,另一個文件是實現(xiàn)各個WebPart的數(shù)據(jù)添加、整理等功能.

        1.4 數(shù)據(jù)庫的設(shè)計

        本文設(shè)計的系統(tǒng)中每一個WebPart的子功能,都采用數(shù)據(jù)庫處理機制,這些機制使用的是Oracle數(shù)據(jù)庫,在Oracle數(shù)據(jù)庫管理工具P/L SQL Developer中創(chuàng)建4個表,分別為待辦事務(wù)、交流信息、信息公告、在線咨詢.

        在Web.config文件中找到節(jié)點,在這個節(jié)點中添加代碼,用于定義Oracle數(shù)據(jù)庫的名稱,以及所需要的用戶名和密碼,具體如下:

        在項目App_Code下建一個類,命名為DB.cs,該類主要用于創(chuàng)建數(shù)據(jù)的連接和操作Oracle數(shù)據(jù)庫.編寫代碼如下:

        using System;

        using System.Data;

        ...

        using System.Data.SqlClient;

        using System.Data.OracleClient;

        ...

        OracleConnection con=DB.GetCon();

        con.Open();

        OracleCommand cmd=new OracleCommand(P_str_cmdtxt,con); ...

        在這個DB.cs類頁面前端拖一個GridView控件,然后在后臺查詢表中記錄,把記錄綁定到GridView中.后臺部分代碼如下:

        using System;

        using System.Collections.Generic;

        ...

        protected void Page_Load(object sender,EventArgse)

        {string sql="select*from WARE_RETAIL_PART";

        //string tab name="WARE_RETAIL_PART";

        DataSet ds=DB.getDataSet(sql);

        GridView1.DataSource=ds.Tables[0].DefaultView;

        GridView1.DataBind();

        ...

        以此實現(xiàn)網(wǎng)頁各表單選項對數(shù)據(jù)庫的訪問,向服務(wù)器提交數(shù)據(jù)請求獲取數(shù)據(jù)表中的信息并顯示在系統(tǒng)頁面相應(yīng)欄目中.

        2 信息咨詢系統(tǒng)的實現(xiàn)

        2.1 登錄機制

        信息咨詢系統(tǒng)的使用,首先是登錄機制,涉及幾個WebPart功能的使用權(quán)限問題,未登錄的訪客只能看到信息公告.在主頁上端有一個用戶狀態(tài)字段,顯示當前用戶名和登錄狀態(tài),通過登錄機制,跳轉(zhuǎn)入系統(tǒng)主頁面,并還原WebPart的設(shè)置初始值,它是通過控制主頁面上的WebPartManager而實現(xiàn),其中關(guān)鍵代碼如下:

        Ctype(Me.page.FindControl("WebPartManager1"),WebPartManager).DisplayMode = WebPartManager.BrowseDisplayMode

        把用戶的WebPart個性化還原初始值,通過如下代碼實現(xiàn):

        CType(Me.Page.FindControl("WebPartManager1"),WebPartManager).Personalization.ResetPersonalizationState()

        由于此用戶數(shù)據(jù)來自圖書館讀者數(shù)據(jù)庫,只需在Login控制的Authenticate中添加如下程序:

        Protected Sub Login1_Authenticate(ByVal sender As Object,ByVal e As System.Web.UI.WebControls.AuthenticateEventArgs)

        HandlesLogin1.Authenticated=Membership.ValidateUser(Login1.UserName,Login1.Password)

        上面程序中,Login控件本身不處理身份驗證,此功能由“Membership類”來完成,Membership用“ValidateVser方法”判斷賬號密碼是否正確,確定是否為數(shù)據(jù)庫中的用戶,最終完成登錄.

        2.2 交流信息的實現(xiàn)機制

        在不換頁面的前提下實現(xiàn)這個功能,要建立一個發(fā)送信息的機制,一個隨時檢查是否有用戶信息的Listener(監(jiān)聽)控件,以及一個存儲信息的數(shù)據(jù)結(jié)構(gòu).

        2.2.1 發(fā)送信息機制 這是一個WebPart類型,設(shè)置了查詢對方是否收到信息的功能,頁面上設(shè)置了兩個按鈕分別對應(yīng)“發(fā)送信息”和“顯示發(fā)送信息記錄”兩個View控件,具體樣式如圖3所示.

        圖3 發(fā)送信息樣式圖

        在圖3頁面中的“內(nèi)容”中輸入所傳遞的信息,然后點擊“發(fā)送”按鈕,便將信息發(fā)送了出去,所謂的“發(fā)送”實際是把此信息存入數(shù)據(jù)庫,發(fā)送信息功能的實現(xiàn)代碼如下:

        For i As Integer = 0 To Me.CheckBoxList1.Items.Count-1

        If Me.CheckBoxList1.Items(i).Selected = True Then

        緊接著的下面代碼為關(guān)鍵部分,調(diào)用EIP.Message.SendRtMsg發(fā)送信息:

        If EIP.Message.SendRtMsg(My.User.Name,Me.CheckBoxList1.Items(i).Text,Me.TextBox1.Text) <= 0 Then

        上面的EIP.Message.SendRtMsg存儲信息到數(shù)據(jù)庫中,此功能實現(xiàn)的代碼如下:

        db.InsertCommand = "insert into 即時信息 (發(fā)信息者,收信息者,發(fā)送時間,信息內(nèi)容) values (?,?,?,?)"

        db.InsertParameters.Clear()

        db.InsertParameters.Add("發(fā)信息者",發(fā)信息者)

        db.InsertParameters.Add("收信息者",收信息者)

        db.InsertParameters.Add("發(fā)送時間")My.StudyHost20.Clock.GetNowByYYYYMMDDHHMMSS)

        db.InsertParameters.Add("信息內(nèi)容",信息內(nèi)容)

        Return db.Insert()

        利用DataSource控件把數(shù)據(jù)存儲到數(shù)據(jù)庫,主頁上的CallBack獲取到用戶端傳入的數(shù)據(jù),通過EIP.Message.GetRtMsgForMe控件獲取數(shù)據(jù)庫中該用戶未讀的信息組成字符串,由RetData返回給用戶端的程序函數(shù),并顯示在用戶的頁面上,此結(jié)果如圖4所示.

        2.2.2 即時互動咨詢交流的實現(xiàn)機制 在線咨詢可以實現(xiàn)多人同時交流,包括邀約和互動交流兩個功能.

        (1)邀約

        即時邀約功能,方便用戶申請咨詢邀約和信息服務(wù)者約請用戶參加交流.網(wǎng)頁上即時出現(xiàn)約請信息,用戶或服務(wù)者進行相應(yīng)回應(yīng),同時也能看到咨詢窗口的最新實時交流信息,免去了換頁面的麻煩,該模塊見圖1中的交流信息,從邀請人員窗口中選中邀約對象,提交邀約信息,這部分操作的主要代碼如下:

        Shared Sub invite(ByVal Who As String,ByVal UserID As String,Optional ByVal time As String = "")

        EIP.Message.SendRtMsg(UserID,Who,UserID & "邀請您參加在線咨詢,歡迎加入!")

        End Sub

        這時,對方一端則出現(xiàn)如圖5的顯示.

        圖4 頁面顯示圖

        圖5 邀約顯示圖

        圖6 在線咨詢顯示圖

        2.2.3 互動交流的在線咨詢服務(wù) 在線咨詢服務(wù)主要包括在線咨詢的WebPart和在線咨詢的數(shù)據(jù)表,每位成員的每次發(fā)言,會自動存儲到數(shù)據(jù)庫中,頁面上的CallBack即時地從數(shù)據(jù)庫中讀取最近幾條發(fā)言記錄顯示在頁面上,成為在線咨詢中的內(nèi)容,如圖6所示.

        用戶在內(nèi)容中輸入信息,點擊“發(fā)言”按鈕,則生成一個CallBack操作,將內(nèi)容和發(fā)言者等數(shù)據(jù)一起傳給服務(wù)器端,并存儲到數(shù)據(jù)庫中,用戶端功能實現(xiàn)的部分代碼為:

        Dim SentMsgScript As String =Me.ClientScript.GetCallbackEventReference(Me,"document.all." & Me.txb_msg.ClientID & ".value+'," & My.User.Name & "'","receivedData","document.all." & Me.Panel1.ClientID)

        Me.btn_Send.Attributes("onclick") = SentMsgScript

        服務(wù)器端接收數(shù)據(jù)并存儲到數(shù)據(jù)庫中的代碼主要如下:

        If eventArgument <> ""

        Then Dim buf()As String = Split(eventArgument,",")

        EIP.OnlineAdvice.InsertMessage(1,buf(0),buf(1))

        End If

        對數(shù)據(jù)庫的訪問操作,是通過DataSource類實現(xiàn)的.程序用SQL語法,“InsertMessage()”函數(shù)把發(fā)言信息存儲到在線咨詢數(shù)據(jù)表,“GetMessage()”函數(shù)把在線咨詢數(shù)據(jù)表中的信息,組成HTML代碼發(fā)送給用戶端.其實現(xiàn)代碼主要部分如下:

        Shared Sub InsertMessage(ByVal OnlineAdviceNO As String,ByVal Message As String,ByVal UserID As String)

        ...

        Shared Function GetMessage(ByVal OnlineAdviceNO As String,ByVal LastN As Integer)

        Dim db As New SysDB

        If LastN <= 0 Then LastN = 15

        如此不需換頁操作,便實現(xiàn)了在一個頁面上進行發(fā)言的同時也能看到其他用戶與館員在線咨詢的交流信息.

        3 結(jié)語

        網(wǎng)絡(luò)改變生活,也改變交流的方式,更加方便、快捷的交流渠道促進了信息知識快速流動的發(fā)展,提高了知識的價值轉(zhuǎn)化[5].信息咨詢服務(wù)的專業(yè)化和便捷化是時代的需求,“工欲善其事必先利其器”,良好的交流工具既有利于通信溝通,也提高了工作效率[6].隨著讀者對于圖書館信息咨詢服務(wù)要求的日益增加,為讀者提供個性化的信息咨詢服務(wù)成為圖書館提高自身核心競爭力的途徑之一[7].基于ASP.NET網(wǎng)絡(luò)技術(shù)設(shè)計的信息咨詢服務(wù)系統(tǒng),以頁面簡潔、交流方便、數(shù)據(jù)傳輸快捷的特點,將會提升圖書館信息咨詢服務(wù)的質(zhì)量和效率,也充分體現(xiàn)了圖書館服務(wù)的專業(yè)化特色.

        猜你喜歡
        咨詢服務(wù)控件頁面
        大狗熊在睡覺
        刷新生活的頁面
        關(guān)于.net控件數(shù)組的探討
        軟件(2018年7期)2018-08-13 09:44:42
        為“一帶一路”建設(shè)做好咨詢服務(wù)
        就這樣玩會VBA中常見的自定義控件
        電腦迷(2012年24期)2012-04-29 00:44:03
        同一Word文檔 縱橫頁面并存
        淺析ASP.NET頁面導航技術(shù)
        在PowerBuUder中利用WinSock控件制作簡單的Web服務(wù)器
        VB.NET中ListBox控件實現(xiàn)流程跟蹤
        91视频88av| 麻豆国产精品va在线观看不卡| 亚洲欧美乱日韩乱国产| 国产露脸精品产三级国产av| 日韩a毛片免费观看| 91久久精品国产91久久| 人妻中文字幕av有码在线| 中文字幕人妻在线少妇完整版| 亚洲av不卡一区男人天堂| 极品少妇一区二区三区四区| 国产精品亚洲欧美云霸高清| 亚洲一区二区高清在线| 国产一区二区三区色哟哟| 99精品视频69v精品视频| 曰批免费视频播放免费直播| 996久久国产精品线观看| 欧美h久免费女| 日本一区二区三区熟女俱乐部 | 国产成人无码一二三区视频| 狠狠亚洲婷婷综合久久久| 国产黑丝美女办公室激情啪啪 | a级毛片免费观看在线播放| 50岁退休熟女露脸高潮| 中文字幕亚洲情99在线| 日韩久久一级毛片| 亚洲精彩视频一区二区| 在线观看国产成人自拍视频| 999国内精品永久免费观看| 最近免费中文字幕| 国产美女a做受大片免费| 亚洲精品国产亚洲av| 山外人精品影院| 波多野结衣一区| 欧美日一本| 国产三级在线观看不卡| 国产高潮流白浆视频在线观看| 无码日韩精品一区二区免费暖暖| 在线 | 一区二区三区四区| 午夜一级在线| 久久一区av蜜桃人妻| 亚洲av高清天堂网站在线观看|