《電子技術應用》
您所在的位置:首頁 > 通信與網絡 > 設計應用 > 基于Ajax與MVC模式的信息系統的研究與設計
基于Ajax與MVC模式的信息系統的研究與設計
來源:電子技術應用2014年第2期
唐永瑞, 張達敏
(貴州大學 電子信息學院, 貴州 貴陽550025)
摘要: 針對MVC模式的B/S架構信息系統Web頁面表現出的實時性較差的問題,嘗試將Ajax融入MVC模式系統的結構設計之中,利用Ajax技術的高交互性設計信息系統的Web頁面,改進Web頁面中的表單數據處理過程。通過文檔對象模型DOM將各文檔定義為樹形結構的數據對象,同時處理HTML文檔中的元素。最后用JavaScript編碼處理頁面中的對象,實現Ajax技術在MVC模式中的應用,提高信息系統Web頁面的交互性。
中圖分類號: TP315
文獻標識碼: A
文章編號: 0258-7998(2014)02-0128-04

The research and design of the information system based on Ajax and MVC pattern
Tang Yongrui, Zhang Damin
College of Electronic Information,Guizhou University, Guiyang 550025,China
Abstract: To solve the problem of the real-time performance that exist in the B/S structure Information System based on MVC pattern, try to integrate Ajax technology into the design of the MVC pattern system,using the high interactivity of the Ajax technology to design Web page of the information system, to improve the data processing in the Web page. Through the DOM(Document Object Model) defines all the documents as a tree structure of data objects,at the same time DOM processing elements in the HTML document,at last deal with the objects in the Web page by Java Script code,thus to release the application of the Ajax technology in the MVC pattern,improve the interactivity of the Web page in the information system.
Key words : Ajax; MVC pattern; interactivity; information system

    靜態網頁技術廣泛用于早期的信息系統中,系統頁面中的超文本結構和導航菜單是描述語言的典型方式。超文本與關系數據庫全面集成,實現了具有豐富數據集成的頁面,但也對設計模式和描述語言提出了新要求。隨著頁面交互性的增加、客戶端腳本語言的改進以及cookies和會話框等概念的出現,傳統描述語言在這些豐富的頁面技術方面顯得非常困難,只可提供可視化的組件,系統的交互性普遍受到傳統網頁模式的極大限制[1-2]。簡單的使用頁面鏈接顯然已不能滿足用戶對系統頁面性能方面日益增長的需求,以及用戶對系統快速、高效、準確響應的要求。
    被廣泛采用的基于“請求—響應”這種傳統MVC交互模式的信息系統,在每次頁面數據和請求響應的處理過程中,首先通過后臺函數獲取用戶填寫的表單字段內容,然后將攜帶表單內容的函數被整個傳送到對應的處理函數(通常是具體的Action函數實現處理過程),完成與數據庫的交互,最后服務器根據處理結果,全面更新相應的頁面進行響應。在數據的傳遞、交互,以及服務器上的腳本和程序處理過程中,用戶必須被迫等待頁面響應,直到服務器安全返回數據后,再重新繪制整個系統頁面。在整個處理過程中,用戶得不到實時反饋,系統表現出較差的數據通信實時性,浪費了大量的帶寬和服務器處理空間[3]。而新興的Ajax技術整合了傳統的Web應用程序設計技術,將傳統Web頁面進行改進,并轉化成具有很強交互性的Web應用程序,極大提高了各網站Web頁面與用戶的交互能力和響應速度[4],并已廣泛應用于各信息系統的建設中。
    針對MVC模式的信息系統在數據響應、處理時的頁面等待問題,結合Ajax在Web應用程序中的應用,本文介紹了Ajax技術的基本原理,分析了Ajax技術的特點,對于改變MVC 模式的信息系統頁面中數據處理過程和提高數據響應速度提出了具體實現方法。
1 Ajax技術
     技術上來看,Ajax技術是多種傳統網頁技術的結合,主要包括:超文本標記語言(HTML)、JavaScript、文檔模型DOM(Document Object Model)等;從實際表現出的作用上來看,Ajax的主要作用是為各Web頁面與服務器之間的數據信息交換提供一種便捷、可靠的解決方案。其中,HTML作用并沒有大的變化,仍是用于描述Web網頁的表單字段等,并且通過標記符號來標記應用程序其他部分要使用的字段,結合CSS實現Web頁面的標準化顯示。JavaScript代碼是Ajax應用程序的核心代碼,它用于獲取和處理Web頁面的所有表單數據,幫助改進Web頁面與服務器上應用程序之間的數據通信,JavaScript中的XMLHttpRequest對象是實現Ajax技術的核心[5]。文檔對象模型DOM定義操作文檔對象的接口,將文檔看成樹形結構的數據對象,每個樹種節點對應一個XML標記(即對象),作為Ajax開發的基礎結構和精髓部分,DOM用于處理HTML文檔中的元素和某些情況下服務器返回的XML,它將Web頁面中需要交互的部分元素設置為對象,通過對對象的操作改變靜態Web頁面的內容[6-7]。可見DOM是實現在瀏覽器端改變頁面內容,實現Web頁面局部刷新和異步請求的基礎。
    Ajax工作原理的主要特點是作為提供給用戶使用的瀏覽器端Web頁面與處理Web頁面中各數據、對象的服務器之間的中間處理層,對Web頁面中用戶請求的處理工作由Ajax中間層和服務器共同處理[8]。通常當頁面數據需要變化(更新、重置等情況)時,Ajax會通過XMLHttpRequest對象向服務器發送請求,因此,可以將Ajax中間處理層看作Web頁面端的一個后臺服務程序,利用Ajax構造的中間處理層實現Web頁面與服務器之間的數據通信及大數據的實時更新等[9]。Ajax的整體工作原理以及流程如圖1所示。

2 Ajax技術的實現
    Ajax最大的特點是將Web頁面數據與服務器之間的交互轉入后臺,減少了傳統Web頁面每次數據更新都必須等待后臺服務器響應所造成的大量時間浪費,以及每次更新頁面都必須重復傳輸大量的不必要信息所造成的通信帶寬浪費[10]。Ajax中間處理層最主要的作用就是解決以上兩個問題,而其最核心的構成部件是XMLHttpRequest對象,由XMLHttpRequest對象進行數據的傳輸和獲取服務器響應,其基本組成和創建過程為:(1)新建XMLHttpRequest對象,如var request=new XMLHttpRequest()。(2)通過open()方法新建Web頁面端到服務器的請求。語法如request.open(“GET””,url,true),即使用GET方法請求服務器,通過url攜帶請求的具體信息(如向服務器請求的具體函數方法),“true”為默認值,表示請求為異步請求,通過“true”保證程序發送請求之后可繼續執行,而不必等待服務器響應。(3)通過readystate屬性提供當前HTML的就緒狀態,設置服務器完成請求處理之后如何進行響應,如要求相應之后即更新Web頁面數據,則在send()方法之前定義request.onreadystatechange=updateData,同時定義function updateData(){}的具體函數實現法。(4)通過send()方法向服務器發送請求。send()方法是一個Ajax事件,語法如request.send(“user=”+username+”&pwd”+password),通過send()攜帶需要傳遞的數據提交給服務器處理。(5)通過responseText屬性攜帶服務器返回的響應文本,通常定義在回調函數中,如updateData(){var response=request.responseText;},最后回調函數通過訪問DOM對象樹實現無頁面刷新情況下的部分數據更新。
3 基于Ajax和MVC模式的信息系統設計
    普通的MVC模式由JSP組成視圖層,Servlet組成控制層,Javabean組成模型層。為改善MVC模式下信息系統(主要是針對B/S架構的信息系統)的交互性,使其具有更強的交互性及更快的響應速度,為用戶提供更高效的服務。在系統的設計過程中引入Ajax技術是非常好的選擇,同時Ajax能夠使得系統Web頁面的設計更加便捷,能夠縮短開發周期,降低信息系統各模塊代碼的耦合性、提高代碼可重用性[11]。信息系統(B/S架構)的設計要求提供Web頁面端用于系統與用戶的交互,主要通過JSP頁面實現。普通信息系統主要功能包括對用戶信息的基本操作,以及通過Web頁面對數據庫中的信息進行增、刪、查、改等操作。信息系統與用戶的交互主要涉及對頁面數據的獲取、數據的傳輸、數據與數據庫的交互、頁面的更新等。
    結合Ajax的信息系統設計并沒有顛覆MVC設計模式的整體框架,而是在MVC系統的體系結構中根據Web頁面對數據處理的具體需要融入Ajax技術。信息系統中的Ajax使用與Web 2.0應用中的Ajax技術稍有不同,它并未完全套用XMLHttpRequest對象的定義方式,而是應用于MVC模式中的XMLHttpRequest對象被改進了。為了更加方便處理來自系統頁面中的請求發送和對數據的調用、回調等,在系統設計中使用的是jQuery中$.ajax()方法,其結構如$.ajax(option),它只包含一個參數,但在這個對象中同時包含所有的請求設置、回調函數等信息。使用$.get()或$.post()方法進行異步請求,獲取輸入數據并建立與服務器連接,實現XMLHttpRequest對象在Web應用中的作用,其結構為:$.get(url [data] [callback] [type])。使用$.getJSON方法獲取json數據(輕量級的一種數據交換格式),通過json的使用能夠很方便地將來自頁面的信息轉換為字符串傳遞給服務器端程序。
    根據$.ajax()函數方法的用法特點以及Ajax技術的整體工作原理,結合MVC模式的三層結構,融入了Ajax技術的MVC模式信息系統體系結構[12],如圖2所示。

    由圖2可見,MVC模式被進一步細化了。在視圖層的設計中將Web頁面的表單和數據寫為HTML文檔和各獨立的DOM對象,與JSP頁面構成新的視圖層,以方便利用Ajax技術對頁面對象進行操作。通過JavaScript定義頁面中數據請求的傳輸方式,通過$.ajax()對象寫入到*.jsp文檔中。分離Servlet控制層的數據轉換處理過程和視圖層數據顯示的控制過程,并將對視圖層的數據獲取等過程提前到Web頁面中進行,簡化邏輯處理層的操作。控制器的處理工作主要變為傳遞函數獲取到的數據字符串,并定義通過請求響應成功后的callback函數作為數據處理的中轉站,完成與模型層的數據通信,為視圖層提供響應,callback函數定義為jQuery.getJSON(url,data,callback)。
    信息系統中廣泛存在對用戶信息的管理,其中一項就是對用戶的登錄名和密碼的修改功能。首先,通過Ajax技術,設計視圖層表單和JSP頁面。接著,從控制層中分離出數據的傳遞功能和具體數據獲取功能,通過JavaScript在*.jsp文檔中的$.ajax()方法定義頁面中數據的傳遞方式、傳輸格式、目標地址等,為后續控制層獲取數據提供基礎服務。Servlet控制器則專注于具體數據傳遞功能的實現(Action),將輸入數據傳遞給具體的功能函數進行處理。之后數據通過Javabean模型與數據庫實現數據交互,完成用戶數據的刪除,最后回調函數通過DOM對象樹實現無頁面刷新情況下的部分數據更新。整個功能設計的部分實現代碼如下:
    (1)定義用戶名、密碼的視圖層設計主要代碼為:
    <tr>
    <td class="tdWidth">登錄名:</td>
    <td>
    <input type="text" name="username" id="username"
        class="inputText" disabled="disabled" />
    </td>
    <td class="tdWidth">登錄密碼:</td>
    <td>
    <input type="password" name="userPwd" id="userPwd"
        class="inputText" />
    </td>
    </tr>
    (2)JSP頁面中的$.ajax( )方法部分腳本代碼實現如下。
    $.ajax({
        type: "POST",                   //用POST方式傳輸
        datatype:"json",                     //數據格式: JSON
  url:'updateUserAdmin.action',    //目標地址
  data:"userId=<%=userId%>"    
    &username="+username+"&userPwd="+userPwd"
  success:function(root){
  var obj = eval(&prime;(&prime;+ root + &prime;)&prime;);
  }
    (3)控制器中的Action實現代碼如下:
    publicvoid updateUserAdmin(){
    customer = new SUsers();
    customer.setUserName(username);
    customer.setUserPwd(userPwd);
    int temp=
    adminEmployeeService.updateUserAdmin(customer)
    }
     整個過程中,首先將視圖層中的各元素、表單等設計為DOM對象模式,在JSP頁面中編寫數據獲取Ajax技術實現代碼,將數據傳遞給控制器Action,控制器將數據進行轉換并傳遞給功能函數,最后模型層根據數據的變化完成與數據庫信息的交互。數據處理功能的實現只是對Web頁面中定義的DOM對象樹中需要處理的節點進行操作。按照這種設計和實現方法,將Ajax技術應用于對整個信息系統的管理中,從而避免系統JSP頁面信息的整體傳輸和刷新,縮短用戶的等待時間,減少服務器和通信帶寬資源的浪費。同時Web頁面允許用戶繼續操作其他表單,提供一種多進程并發處理的模式,使得信息系統表現出較強的實時交互性。
    本文根據Ajax技術的特點,利用其在Web應用程序中表現出的優異互動性,借助XMLHttpRequest對象的處理思想,將jQuery的Ajax方法融入MVC模式信息系統(B/S架構)的設計中。將系統Web頁面需要交互的元素設置為DOM對象樹,通過JavaScript編碼操作對象,使得系統能夠實現數據的異步、實時處理。從而使得信息系統的Web頁面具有很強的交互性,避免了用戶在使用系統的過程中,因為等待后臺數據的處理而停止其他工作,提高了時間利用率和系統工作效率。但數據的通信和處理過程還是顯得非常冗雜,后續主要研究應該包括:如何通過Ajax技術的$.ajax()方法建立頁面數據到模型層直接通信,及如何實現將數據的獲取和處理函數嵌入到$.ajax()中。
參考文獻
[1] SINGH A K. Ajax asynchronous database refresh[J]. International Journal of Information and Communication Technology Research, 2012,2(8):669-703.
[2] 黃偉.基于MVC架構的Web應用系統設計[J]. 微型機與應用,2004,23(11):13-15.
[3] 楊斌,張衛東,張利欣,等. 基于Ajax的Observer模式客戶端研究[J].計算機工程,2010,36(24):4-5.
[4] 張宇,王映輝,張翔南. 基于Spring的MVC框架設計與實現[J]. 計算機工程,2010,36(4):59-62.
[5] 朱印宏. JavaScript征途[M]. 北京:電子工業出版社,2009.
[6] 陳莉莉,張麗,劉正龍.搜索引擎中基于狀態的Ajax動態網頁提取研究[J].計算機應用與軟件, 2013,30(7):217-220.
[7] 郭泉成,劉紅,雷長海.基于Asp.net Ajax技術的民主評議系統設計與實現[J].微型機與應用,2013,32(10):4-6.
[8] DUDA C, FREY G, KOSSMANN D,et al. AJAXSearching: crawing, indexing and searching Web 2.0 application[C]. VLDB, 2008.
[9] SINGH A K. Ajax complexity[J]. International Journal of Engineering Science Paradigms and Researches,2012,1(1):2319-6564.
[10] 林劍熊, 周曉慧. 基于Ajax和MVC架構的研究與應用[J].機電工程,2010,27(4):90-92.
[11] 陽鋒 徐建波. AJAX技術的性能改進研究[J]. 計算機工程與科學, 2008,30(6):146-148.
[12] 張原,張昭,劉蕊. 基于MVC設計模式的虛擬實驗平臺模塊化設計[J].計算機工程與科學, 2013,35(8):125-129.

此內容為AET網站原創,未經授權禁止轉載。
亚洲一区二区欧美_亚洲丝袜一区_99re亚洲国产精品_日韩亚洲一区二区
精品动漫3d一区二区三区免费版 | 久久国产免费看| 欧美日韩在线亚洲一区蜜芽| 一本久久精品一区二区| 亚洲日本中文| 久久婷婷蜜乳一本欲蜜臀| 久久精品日韩欧美| 亚洲黄色精品| 国产精品看片资源| 久久国产视频网站| 亚洲国产高清视频| 亚洲老板91色精品久久| 国产精品久久久久一区二区| 欧美日韩在线播放三区四区| 欧美日韩激情网| 久久久久国产精品www| 亚洲黄色小视频| 一本色道久久综合一区| 国产伦理一区| 欧美大片免费看| 亚洲在线中文字幕| 亚洲第一页在线| 久久精品欧美日韩| 亚洲国产日韩欧美| 亚洲精美视频| 亚洲小说欧美另类社区| 国产在线播精品第三| 欧美国产日韩一区二区三区| 亚洲一区欧美| 亚洲综合二区| 亚洲精品少妇| 午夜国产精品视频| 亚洲精品乱码久久久久久| 亚洲精品乱码久久久久| 夜夜精品视频一区二区| 国产精品99久久99久久久二8| 狠狠色狠狠色综合人人| 欧美性猛片xxxx免费看久爱 | 久久久最新网址| 一本到高清视频免费精品| 亚洲视频在线一区| 亚洲国产精品尤物yw在线观看| 亚洲国产高清aⅴ视频| 亚洲精品网址在线观看| 亚洲婷婷综合色高清在线| 亚洲国产精品高清久久久| 亚洲黄色影院| 亚洲天天影视| 久久久久亚洲综合| 欧美国产日韩一区| 国产精品人成在线观看免费| 久久一区二区视频| 欧美fxxxxxx另类| 久久精品视频在线观看| 欧美sm极限捆绑bd| 欧美午夜在线| 国产一区二区三区视频在线观看| 国产精品久久国产精品99gif| 欧美电影在线播放| 国产精品国产精品| 国内久久精品| 一本色道久久99精品综合| 欧美在线观看视频在线| 亚洲欧美在线播放| 亚洲激情另类| 欧美亚洲综合网| 亚洲一区二区日本| 久久精品视频网| 欧美日韩综合不卡| 欧美连裤袜在线视频| 欧美成人精品在线播放| 国产精品电影观看| 亚洲福利视频一区二区| 影音先锋久久| 尤物精品在线| 亚洲天堂网站在线观看视频| 亚洲国产精品va在线观看黑人| 亚洲视频一区二区免费在线观看| 久久偷看各类wc女厕嘘嘘偷窃| 欧美日韩一区二区三区在线视频| 国语自产精品视频在线看抢先版结局| 亚洲精品在线看| 久久国产欧美| 亚洲欧美影音先锋| 欧美一区二区三区精品电影| 欧美激情欧美激情在线五月| 国产亚洲一区在线播放| 日韩一区二区久久| 亚洲午夜精品网| 亚洲精品影视在线观看| 久久九九全国免费精品观看| 欧美日一区二区在线观看| 在线国产精品播放| 欧美一区二区三区视频免费| 亚洲一区亚洲| 欧美日韩精品在线| 亚洲电影免费观看高清完整版| 亚洲第一网站| 欧美一区深夜视频| 亚洲欧美日韩一区二区在线| 欧美日本一区二区视频在线观看| 一区二区三区在线免费视频| 性高湖久久久久久久久| 久久精品道一区二区三区| 亚洲欧美中文日韩v在线观看| 欧美精品国产精品| 欧美午夜性色大片在线观看| 亚洲国产精品va在看黑人| 亚洲第一毛片| 久久国产婷婷国产香蕉| 国产精品视频一区二区三区| 国产精品99久久99久久久二8 | 亚洲精品久久久久久下一站| 亚洲国产精品黑人久久久| 久久久欧美一区二区| 国产性猛交xxxx免费看久久| 在线电影一区| 欧美呦呦网站| 欧美有码在线观看视频| 免费在线成人| 亚洲高清视频在线观看| 亚洲国产裸拍裸体视频在线观看乱了中文| 久久久久九九视频| 国内外成人免费视频| 亚洲电影成人| 老司机久久99久久精品播放免费| 欧美激情在线播放| 亚洲国产一区二区a毛片| 91久久精品国产91久久性色tv| 免费成人av在线| 欧美系列一区| 这里只有精品电影| 欧美在线视频观看免费网站| 久久国产精品第一页 | 国产性天天综合网| 久久精品30| 噜噜爱69成人精品| 亚洲国产成人av| 一区二区三区 在线观看视| 西西人体一区二区| 欧美成人免费视频| 亚洲欧洲一级| 在线亚洲欧美视频| 国产精品免费电影| 香蕉成人伊视频在线观看| 久久久综合免费视频| 亚洲国产精品va在看黑人| 一区二区三区国产在线观看| 国产精品卡一卡二卡三| 欧美一区视频在线| 欧美成人激情在线| 一区二区日韩欧美| 欧美在线一二三四区| 激情小说另类小说亚洲欧美| 日韩视频永久免费观看| 久久久五月天| 亚洲高清免费视频| 亚洲一区在线看| 国产一区二区黄色| 99精品视频免费观看视频| 国产精品久久久久久久久久久久久久 | 欧美午夜女人视频在线| 香蕉国产精品偷在线观看不卡| 毛片基地黄久久久久久天堂| 99精品视频免费观看视频| 久久aⅴ乱码一区二区三区| 亚洲高清成人| 亚洲欧美日韩区| 在线成人小视频| 亚洲永久在线观看| 黄色精品在线看| 亚洲视频专区在线| 韩日成人av| 亚洲砖区区免费| 永久免费毛片在线播放不卡| 亚洲午夜一区二区| 伊人狠狠色丁香综合尤物| 亚洲午夜久久久| 在线观看亚洲精品视频| 亚洲欧美激情视频在线观看一区二区三区 | 亚洲一区欧美激情| 在线综合亚洲| 国产麻豆精品theporn| 亚洲三级视频在线观看| 免费看的黄色欧美网站| 一本久久综合| 美女日韩在线中文字幕| 亚洲一级黄色av| 免费久久99精品国产| 亚洲一区999| 欧美好骚综合网| 性久久久久久久久久久久| 欧美日韩国产成人高清视频| 欧美一级视频免费在线观看| 欧美三级黄美女| 亚洲激情女人| 国产一区二区电影在线观看| 亚洲视频中文| 亚洲经典在线看| 久久婷婷激情|