999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于Ajax的由傳統B/S到RIA的演變

2016-08-29 02:14:21山西農業大學左卓君
電子世界 2016年15期
關鍵詞:頁面用戶

山西農業大學 左卓君

?

基于Ajax的由傳統B/S到RIA的演變

山西農業大學 左卓君

通過對現有的傳統B/S架構數據傳輸模式的分析,找出其中不適應用戶便捷的缺陷,并針對該缺陷提出解決方案,該解決方案就是在B/S架構中引入基于Ajax來實現實時異步傳輸。

RIA;B/S架構;Ajax

一、緒論

1.傳統B/S架構:

基于Html的網絡程序開發通過在服務器端同步消息傳送,將MVC的View建立在適合與文本的Html頁面之上的傳統的基于頁面的系統。這種應用程序部署成本低,訪問速度快。但是對于通過多次提交網頁來處理的事物的領域中,重復多次提交相同的網頁,會使交互速度變得慢,而用戶也對這種重復提交的冗雜方式心生厭煩。

2.富互聯網(Rich Internet Application,RIA)

RIA是將桌面APP的交互用戶體驗與傳統的Web應用的靈活部署和低成本結合起來的網絡應用。這種模式相對于傳統頁面的優點是部分程序運行于瀏覽器端并且能實現頁面無刷新提交。所謂“富”的含義:1.豐富的數據模型。(即用戶界面可以操作顯示復雜的進行異步傳輸的嵌入在客戶端中的數據模型。)2.豐富的用戶界面。(RIA提供了靈活多樣的用戶界面控制元素,這些控制元素可以很好的與數據模型相結合。)易知RIA是B/S與C/S的完美結合和互補。瀏覽器端分擔了部分服務器端負載,使得部署和使用更加方便。

3.背景

由于傳統B/S架構的先天不足與計算機應用技術的發展,出現了一種富互聯網應用(簡稱RIA)。RIA以富客戶端為核心,通過提供與后臺應用服務器的異步通信方式和豐富的用戶界面、數據模型,來解決B/S架構的弊端,提高Web應用的用戶體驗。

二、基于Ajax技術的RIA研究

1.幾種常用的RIA客戶端開發技術

Flash:任何瀏覽器都支持的展示形式,從而輕松解決瀏覽器之間的移植問題。

Laszlo:本質與Flex一樣。

Avalon:基于Avalon的應用程序必須運行在Windows環境中。

XUL:是一種非常具有表達力和簡潔的語言,但是目前還沒獲得主要商業實體的支持。

Bindows:一個主要缺點是采用一次全部載入的方式實現腳本庫,在窗口的加載期,需要一個漫長的等待過程,而不是用多少取多少,甚至瀏覽器會出現無響應的情況。

Flash和Flex的最大缺點是不能很好的支持Web和XML等服務標準,而且作為App開發工具的環境也不成熟。而這個正是Ajax技術的優點。

2.Ajax技術

Ajax不是新的編程語言,而是由XML、XHTML、JavaScript、XMLHttpRequest、DOM、XSLT、CSS以新的方式組合而成。其中:JavaScript在Ajax中綁定一切,利用它創建和操作XMLHttpRequest對象,與后臺交互,處理返回數據,操作DOM來顯示處理結果。DOM負責對已載入頁面進行無刷新動態更新,實現數據的動態顯示和交互。Css用來調整樣式與XSLT一起顯示。

JavaScript:一種基于對象和事件驅動并具有跨平臺性和較好安全性能,基于瀏覽器本身,與操作系統無關,的腳本語言(也是解釋性語言)。

DOM提供給Html和XML一組API,讓開發者通過DOM樹建立頁面與JavaScript腳本之間的溝通橋梁。

XML使用者可以在已有的通用標簽的基礎上增加自定義標簽,實現語言的可擴展性。XML可用來Expression/Store數據,XML可以很容易的被其他應用程序解析共享。

Ajax向服務器利用XmlHttpRequest對象發送異步請求,再從服務器獲取數據,然后用JavaScript通過操作DOM來進行頁面的更新。其中最關鍵的是服務器如何獲得請求數據。ajax的核心機制是XMLHttpRequest:一種支持消息異步傳輸的技術。簡單的說,就是JavaScript可以及時向服務器提出請求和處理響應,而不阻塞用戶。達到無刷新的效果。

3.基于Ajax的RIA

利用Ajax在JavaScript中編寫的“富瀏覽器端”較普通Html頁面更加健壯、反應更加靈敏、而異步刷新具有良好的可視化特性。JavaScript用XMLHttpRequest充當數據傳輸的執行者,在瀏覽器與服務器之間,形成了異步數據通信。而JavaScript可使AJAX應用程序具有豐富的用戶界面,響應速度快,并且無刷新更新數據。因為Ajax利用的JavaScript格式和其它標準的Web 開發技術對瀏覽器全兼容,意味著它擁有基于標準的瀏覽器應用程序的可達性特點。而在實際中,Ajax不需要用戶安裝,也不需要瀏覽器提供插件,容易被用戶接受和使用。

三、由J2EE向RIA過渡的一個典型的實例

(用戶名無刷新驗證)

1.現有系統分析:在村務信息管理系統中當注冊用戶逐漸增多時,用戶名就很容易重復,雖然加了校驗機制,但是卻是消息同步傳輸,界面刷新,當用戶名不可用時,刷新后的界面會將之前游客注冊時填寫的用戶名等信息沖刷掉,這給用戶帶來了很大的不方便,在現在這種競爭激烈的互聯網環境中,這個將會帶來致命的不可估量的損失。

2.系統改進:

通過Ajax實現用戶名無刷新驗證等其他一些網站的“富”化。(下面是用戶名無刷新驗證實現方式的核心代碼)

3.創建XMLHttpRequest對象(Ajax引擎)。不同瀏覽器創建XMLHttpRequest 對象的方法不同。這里在JavaScript中Function內使用try...catch。

function getXmlHttp()

{var MyxmlHttp;

try{ // Firefox, Opera 8.0+, Safari等幾種主流瀏覽器的創建Ajax引擎的方法

MyxmlHttp=new XMLHttpRequest();}

catch (e){ // IE瀏覽器

try{ MyxmlHttp=new ActiveXObject("Msxml2.XMLHTTP");}

catch (e){//其他非主流瀏覽器

try{ MyxmlHttp=new ActiveXObject("Microsoft.XMLHTTP");}

catch (e){Windows.onload(“您的瀏覽器不支持Ajax”);

return false;

}}

}}

2.發送請求至服務器:(也可以用Post的方法發送請求)

var http_request;

function sendHttpRequest(){

if(window.ActiveXObject){http_request=new ActiveXObject(“Microsoft.XMLHTTP”); }

else{ httpRequest=new XMLHttpRequest();}

if( httpRequest){var url=“發送請求給服務器”;

httpRequest.open(“GET”,url,true); //如果設為false表示同步,這樣就與傳統的B/S架構的Html頁面的網站用戶體驗一樣了。

httpRequest.onreadystatechange=chuli;//調用chuli函數。

httpRequest.send();//發送請求}}

3.處理函數:

function chuli(){if( httpRequest.readyState==4){

if( httpRequest.status==200){var res= httpRequest.responseText;//返回的是文本

處理的具體函數體(根據服務器返回結果作相應處理。)}

}}

4.服務器端處理:

<%@ page contentType="text/html;charset=gb2312"%>

<%

String uname = request.getParameter("uname");

uservalidation="用戶名可用";

List<User> ulist=ubiz.getAll();

for(User u:ulist){

if( uname .equals(u.getAdminname())){

uservalidation="用戶名不可用";

}}out.println(uservalidation);

}%>

四、意義

傳統的B/S架構一般采用:請求--刷新--顯示的模式。即當用戶單擊按鈕/鏈接發送請求至服務器,服務器即時接收并處理請求,處理完畢后服務器發送結果至前臺頁面。在服務器DO的Time,瀏覽器必須等待,顯示為空白/無響應狀態,而用戶也只有等待。實際上,用戶想得到的可能只是一個數據,卻要刷新整個頁面,重新在服務器上計算和下載到瀏覽器的整個頁面加大了網絡流量和服務器的處理負荷,造成用戶體驗差,改進后的RIA操作簡捷,響應速度快,無刷新,用戶體驗較好。

[1]Rogers.Pressman.軟件工程一實踐者的研究方法[M].梅宏譯,機械工業出版社,2002.

[2]柯自聰.AJAX開發精要——概念、案例與框架[M].電子工業出版社,2006.

[3]張友生.軟件體系結構原理、方法與實踐[M].清華大學出版,2014.

左卓君(1994-),女,山西渾源人,現就讀于山西農業大學軟件工程專業。

猜你喜歡
頁面用戶
微信群聊總是找不到,打開這個開關就好了
大狗熊在睡覺
刷新生活的頁面
保健醫苑(2022年1期)2022-08-30 08:39:14
關注用戶
商用汽車(2016年11期)2016-12-19 01:20:16
關注用戶
商用汽車(2016年6期)2016-06-29 09:18:54
關注用戶
商用汽車(2016年4期)2016-05-09 01:23:12
Camera360:拍出5億用戶
創業家(2015年10期)2015-02-27 07:55:08
100萬用戶
創業家(2015年10期)2015-02-27 07:54:39
如何獲取一億海外用戶
創業家(2015年5期)2015-02-27 07:53:25
同一Word文檔 縱橫頁面并存
主站蜘蛛池模板: 91成人在线免费观看| 在线观看免费国产| 国产在线观看91精品| 激情五月婷婷综合网| 伊人91视频| 88av在线播放| 精品少妇人妻av无码久久| 亚洲中文精品人人永久免费| 精品无码日韩国产不卡av| 欧美性精品不卡在线观看| 免费毛片网站在线观看| 666精品国产精品亚洲| 91久久国产成人免费观看| 毛片最新网址| 奇米影视狠狠精品7777| 亚洲国产精品久久久久秋霞影院 | 99视频精品在线观看| 亚洲欧美自拍视频| 亚洲精品国产首次亮相| 日韩成人高清无码| 亚洲一区二区三区国产精华液| 婷婷丁香色| 日本在线国产| 欧美天堂久久| 欧美亚洲另类在线观看| 欧美天堂久久| 国产精品丝袜视频| 人妖无码第一页| 欧美日韩另类国产| 在线免费看黄的网站| 色综合天天综合中文网| 伦精品一区二区三区视频| 免费国产好深啊好涨好硬视频| 久久久国产精品无码专区| 亚洲欧美在线综合一区二区三区| 国产综合网站| 亚洲精品va| 免费国产福利| 深夜福利视频一区二区| 国产人免费人成免费视频| 亚洲人成网站18禁动漫无码| 久久77777| 欧美A级V片在线观看| 国产精品手机在线观看你懂的| 亚洲精品在线91| 在线观看无码a∨| 日韩欧美在线观看| 黄色网址手机国内免费在线观看| 老司机精品99在线播放| 亚洲国产成人自拍| 久久免费观看视频| 亚洲精品麻豆| 国产亚洲精品自在久久不卡| 免费无码在线观看| 99草精品视频| 国产精品吹潮在线观看中文| 成人噜噜噜视频在线观看| 91精品专区| 最近最新中文字幕在线第一页| 国产aaaaa一级毛片| av天堂最新版在线| 欧美a级在线| 国产靠逼视频| 伊人91在线| 九色免费视频| 一本大道无码日韩精品影视| 国产毛片片精品天天看视频| 亚洲无码视频一区二区三区| 午夜a视频| 欧美亚洲国产视频| 嫩草在线视频| AV老司机AV天堂| 日韩毛片免费观看| 中文字幕亚洲无线码一区女同| 欧美视频免费一区二区三区| 国产一区二区三区在线观看视频| 免费视频在线2021入口| 亚洲成a人片在线观看88| 国产精品色婷婷在线观看| 中文字幕乱妇无码AV在线| 成人精品在线观看| 欧美精品成人|