国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

量化分析Ajax性能與應(yīng)用決策

2014-09-21 07:14:38陳小奎方賢文
關(guān)鍵詞:用戶名網(wǎng)頁(yè)頁(yè)面

陳小奎,方賢文

(安徽理工大學(xué) 理學(xué)院,安徽 淮南 232001)

0 引言

Ajax的全稱是Asynchronous JavaScript and XML(異步JavaScript和XML)。它有別于傳統(tǒng)web開發(fā)中采用的同步的方式[1]。Ajax的原理簡(jiǎn)單說(shuō)來(lái)就是通過(guò)XmlHttpRequest對(duì)象來(lái)向服務(wù)器發(fā)異步請(qǐng)求,從服務(wù)器獲得數(shù)據(jù),然后用javaScript來(lái)操作DOM而更新頁(yè)面數(shù)據(jù),達(dá)到不刷新整個(gè)頁(yè)面而更新了頁(yè)面數(shù)據(jù)的功能[2]。

Ajax的優(yōu)點(diǎn)主要是:

(1)頁(yè)面無(wú)刷新前提下實(shí)現(xiàn)了頁(yè)面內(nèi)與服務(wù)器通信,給用戶體驗(yàn)非常好[3]。

(2)使用異步方式與服務(wù)器通信,不需要打斷用戶的操作,具有更加迅速的響應(yīng)能力[4]。

(3)可以把以前一些服務(wù)器負(fù)擔(dān)的工作轉(zhuǎn)嫁到客戶端,減輕服務(wù)器的負(fù)擔(dān)[5]。

Ajax技術(shù)的缺點(diǎn)主要有:

(1)Ajax技術(shù)破壞了瀏覽器的后退機(jī)制[6]。

(2)Ajax技術(shù)建立了一個(gè)對(duì)企業(yè)數(shù)據(jù)的直接通道。暴露比傳統(tǒng)網(wǎng)頁(yè)更多的數(shù)據(jù)和服務(wù)器邏輯[7]。

(3)違背了URL的初衷。一個(gè)采用了Ajax技術(shù)URL地址下看到的內(nèi)容可能是不同的,這和統(tǒng)一資源定位的初衷是相背離的[8]。

當(dāng)使用Ajax技術(shù)來(lái)開發(fā)一個(gè)動(dòng)態(tài)網(wǎng)站系統(tǒng)時(shí),需要考慮Ajax的執(zhí)行效率、可靠性和可維護(hù)性等方面。當(dāng)前國(guó)內(nèi)外對(duì)Ajax技術(shù)的研究主要在討論該技術(shù)的優(yōu)點(diǎn)和定性的分析其性能指標(biāo)[9]。這也造成了Ajax技術(shù)濫用現(xiàn)象,很多開發(fā)人員不考慮實(shí)際需要盲目的將這項(xiàng)技術(shù)強(qiáng)加在網(wǎng)站系統(tǒng)中,加大了系統(tǒng)開發(fā)和維護(hù)的難度,增加了系統(tǒng)運(yùn)行的負(fù)擔(dān)[10]。本文設(shè)計(jì)一個(gè)實(shí)驗(yàn)網(wǎng)站,測(cè)定數(shù)據(jù)庫(kù)服務(wù)耗時(shí)和網(wǎng)絡(luò)響應(yīng)時(shí)間,建立數(shù)學(xué)模型定量的分析Ajax性能,嘗試給出網(wǎng)站開發(fā)各功能模塊中是否使用Ajax技術(shù)的建議,以構(gòu)建一個(gè)更高效系統(tǒng)。

1 實(shí)驗(yàn)設(shè)計(jì)

Ajax技術(shù)在Web站點(diǎn)中的最常用的應(yīng)用方面是注冊(cè)賬號(hào)的時(shí)候檢測(cè)用戶名是否重復(fù),郵箱是否重復(fù),多級(jí)下拉菜單的讀取。本文主要針對(duì)檢測(cè)用戶名是否重復(fù)方面設(shè)計(jì)一個(gè)實(shí)驗(yàn)網(wǎng)站,并租用網(wǎng)絡(luò)空間發(fā)布該網(wǎng)站,以測(cè)得第一手?jǐn)?shù)據(jù)。

1.1 實(shí)驗(yàn)平臺(tái)的搭建

本文中實(shí)驗(yàn)采用當(dāng)前Web開發(fā)中較常用的JSP技術(shù),實(shí)驗(yàn)服務(wù)器環(huán)境Apache、Tomcat6.0、MySQL5.5數(shù)據(jù)庫(kù),開發(fā)工具采用MyEclipse6.5。并將項(xiàng)目發(fā)布到租用空間,實(shí)驗(yàn)多次用到數(shù)據(jù)庫(kù)操作,將數(shù)據(jù)庫(kù)封裝成DBLink.java類,其部分關(guān)鍵代碼如下:

1.2 檢驗(yàn)重復(fù)模塊實(shí)驗(yàn)設(shè)計(jì)

檢驗(yàn)重復(fù)模塊實(shí)驗(yàn)從程序執(zhí)行時(shí)間設(shè)計(jì),共設(shè)計(jì)了三個(gè)實(shí)驗(yàn)。

實(shí)驗(yàn)一:計(jì)算數(shù)據(jù)庫(kù)添加操作執(zhí)行時(shí)間設(shè)計(jì),設(shè)計(jì)一個(gè)JSP頁(yè)面,在執(zhí)行程序前獲得當(dāng)前時(shí)間,在操作數(shù)據(jù)庫(kù)后測(cè)得結(jié)束時(shí)的當(dāng)前時(shí)間,用結(jié)束時(shí)間減去起始時(shí)間獲得數(shù)據(jù)庫(kù)操作所需時(shí)間,這段時(shí)間包含打開關(guān)閉數(shù)據(jù)庫(kù)時(shí)間和數(shù)據(jù)庫(kù)操作時(shí)間。所以,實(shí)驗(yàn)中設(shè)計(jì)了可以一次添加多條記錄,以總結(jié)出計(jì)算公式,部分關(guān)鍵代碼如下:

執(zhí)行實(shí)驗(yàn)一程序測(cè)得數(shù)據(jù)如表1所示。利用添加記錄數(shù)和平均耗時(shí)構(gòu)造成一系列離散點(diǎn),并擬合成一條直線,如圖1所示。

表1 數(shù)據(jù)庫(kù)更新操作時(shí)間測(cè)定實(shí)驗(yàn)數(shù)據(jù)表

圖1 MySQL數(shù)據(jù)庫(kù)更新操作耗時(shí)統(tǒng)計(jì)圖

由得到的直線方程可以計(jì)算出數(shù)據(jù)庫(kù)更新操作時(shí)打開和關(guān)閉數(shù)據(jù)庫(kù)時(shí)間和數(shù)據(jù)庫(kù)添加一條記錄的時(shí)間。實(shí)驗(yàn)二:測(cè)定查詢數(shù)據(jù)庫(kù)時(shí)間,在執(zhí)行查詢程序前獲得當(dāng)前時(shí)間,在操作數(shù)據(jù)庫(kù)后測(cè)得結(jié)束時(shí)的當(dāng)前時(shí)間,用結(jié)束時(shí)間減去起始時(shí)間獲得數(shù)據(jù)庫(kù)操作所需時(shí)間。部分關(guān)鍵代碼如下:

執(zhí)行實(shí)驗(yàn)二程序測(cè)得數(shù)據(jù)如表2所示。利用添加記錄數(shù)和平均耗時(shí)構(gòu)造成一系列離散點(diǎn),并擬合成一條直線,如圖2所示。

表2 數(shù)據(jù)庫(kù)查詢操作時(shí)間測(cè)定實(shí)驗(yàn)數(shù)據(jù)表

圖2 MySQL數(shù)據(jù)庫(kù)查詢操作耗時(shí)統(tǒng)計(jì)圖

由得到的直線方程可以計(jì)算出查詢操作時(shí)打開和關(guān)閉數(shù)據(jù)庫(kù)時(shí)間和查詢數(shù)據(jù)庫(kù)一條記錄的時(shí)間。

通過(guò)實(shí)驗(yàn)一和實(shí)驗(yàn)二測(cè)算出的數(shù)據(jù)是針對(duì)于特定的Web站點(diǎn)運(yùn)行環(huán)境的,網(wǎng)站開發(fā)人員可以依據(jù)項(xiàng)目實(shí)際運(yùn)行環(huán)境應(yīng)用這兩個(gè)實(shí)驗(yàn)方法測(cè)算出相應(yīng)數(shù)據(jù)。

2 建模分析Ajax性能

2.1 Ajax技術(shù)的程序流程分析

在通過(guò)實(shí)驗(yàn)獲得了網(wǎng)站執(zhí)行效率的數(shù)據(jù)后,對(duì)傳統(tǒng)網(wǎng)頁(yè)和應(yīng)用了Ajax的網(wǎng)頁(yè)的程序流程進(jìn)行對(duì)比來(lái)建立數(shù)學(xué)模型。傳統(tǒng)網(wǎng)頁(yè)實(shí)現(xiàn)用戶注冊(cè)流程為用戶點(diǎn)擊注冊(cè)后打開數(shù)據(jù)庫(kù)后,遍歷記錄判斷用戶名是否重復(fù),若重復(fù)則提示重復(fù)返回注冊(cè)頁(yè)面重新輸入,不重復(fù)則直接添加用戶,然后關(guān)閉數(shù)據(jù)庫(kù)。流程如圖3所示。

應(yīng)用Ajax技術(shù)的網(wǎng)頁(yè)實(shí)現(xiàn)用戶注冊(cè)流程為用戶輸入用戶名后異步訪問(wèn)檢測(cè)頁(yè)面,打開數(shù)據(jù)庫(kù)后,遍歷記錄判斷用戶名是否重復(fù),重復(fù)則返回提示信息,不重復(fù)則提示用戶名可用信息,關(guān)閉數(shù)據(jù)庫(kù)。點(diǎn)擊添加按鈕確定時(shí)再次打開數(shù)據(jù)庫(kù)添加注冊(cè)信息,然后關(guān)閉數(shù)據(jù)庫(kù),流程如圖4所示。

圖3 傳統(tǒng)網(wǎng)頁(yè)注冊(cè)用戶流程圖

圖4 應(yīng)用Ajax技術(shù)的網(wǎng)頁(yè)注冊(cè)用戶流程圖

2.2 模型構(gòu)建

設(shè)傳統(tǒng)網(wǎng)頁(yè)服務(wù)器處理注冊(cè)時(shí)數(shù)據(jù)庫(kù)耗時(shí)為Tt,那么用戶名不重復(fù)時(shí)Tt=To+Ts+Ti+Tc;用戶名重復(fù)時(shí)Tt=To+Ts+Tc+Td。其中To為打開數(shù)據(jù)庫(kù)所需要時(shí)間,Ts為遍歷搜索輸入信息是否重復(fù)的時(shí)間,Ti為數(shù)據(jù)庫(kù)添加記錄的時(shí)間,Tc為數(shù)據(jù)庫(kù)關(guān)閉時(shí)間,Td為頁(yè)面重定向時(shí)間,Td可以由實(shí)驗(yàn)三測(cè)算出來(lái)。

實(shí)驗(yàn)三設(shè)計(jì)原理是在當(dāng)前頁(yè)面(current.jsp)中獲取到當(dāng)前時(shí)間,利用seesion對(duì)象將這個(gè)時(shí)間值傳遞到跳轉(zhuǎn)的目標(biāo)頁(yè)面(target.jsp),在跳轉(zhuǎn)的頁(yè)面中計(jì)算時(shí)間差。current.jsp中部分關(guān)鍵的代碼如下:

target.jsp中部分關(guān)鍵的代碼如下:

設(shè)應(yīng)用了Ajax技術(shù)網(wǎng)頁(yè)服務(wù)器處理注冊(cè)時(shí)數(shù)據(jù)庫(kù)耗時(shí)為Ta,那么用戶名不重復(fù)時(shí)Ta=2To+Ts+Ti+2Tc;用戶名重復(fù)時(shí)Ta=To+Ts+Tc。其中To為打開數(shù)據(jù)庫(kù)所需要時(shí)間,Ts為遍歷搜索輸入信息是否重復(fù)的時(shí)間,Ti為數(shù)據(jù)庫(kù)添加記錄的時(shí)間,Tc為數(shù)據(jù)庫(kù)關(guān)閉時(shí)間。

通過(guò)以上分析,在重復(fù)可能性較少時(shí),傳統(tǒng)網(wǎng)頁(yè)的服務(wù)器負(fù)擔(dān)更小,重復(fù)可能性較大時(shí),應(yīng)用Ajax技術(shù)則更有優(yōu)勢(shì)。我們假設(shè)重復(fù)率為h,那么傳統(tǒng)網(wǎng)頁(yè)處理注冊(cè)時(shí)服務(wù)器平均耗時(shí)

應(yīng)用了Ajax技術(shù)網(wǎng)頁(yè)服務(wù)器處理注冊(cè)時(shí)數(shù)據(jù)庫(kù)平均耗時(shí)

3 結(jié)語(yǔ)

本文通過(guò)搭建JSP的實(shí)驗(yàn)平臺(tái)并通過(guò)兩個(gè)實(shí)驗(yàn)測(cè)算出服務(wù)器在處理數(shù)據(jù)庫(kù)添加和查詢時(shí)平均耗時(shí),分析傳統(tǒng)網(wǎng)頁(yè)與應(yīng)用了Ajax技術(shù)的網(wǎng)頁(yè)的程序流程,建立相應(yīng)的數(shù)學(xué)模型,提供了模型中所需要參數(shù)的計(jì)算方法和實(shí)驗(yàn)。本文中不足是注冊(cè)重復(fù)率的估算還不夠精確,應(yīng)用概率論知識(shí)測(cè)算重復(fù)率是我們進(jìn)一步研究的內(nèi)容。

[1]Mesbah A,Bozdag E,van Deursen A.Crawling AJAX by inferring user interface state changes[C]//Web Engineering,2008.ICWE'08.Eighth International Conference on.IEEE,2008:122-134.

[2]Duda C,F(xiàn)rey G,Kossmann D,et al.AJAX crawl:making AJAX applications searchable[C]//Data Engineering,2009.ICDE'09.IEEE 25th International Conference on.IEEE,2009:78-89.

[3]Singh A K.Ajax Asynchronous Database Refresh[J].International Journal of Information,2012,2(8):669-703.

[4]裴生雷.Ajax+JSP開發(fā)模式的研究及應(yīng)用[J].計(jì)算機(jī)技術(shù)與發(fā)展,2013,23(1):242-245.

[5]張濤,黃強(qiáng),毛磊雅,等.一個(gè)基于JSON的對(duì)象序列化算法[J].計(jì)算機(jī)工程與應(yīng)用,2007,43(15):98-100.

[6]Wusteman J,O'hlceadha P.Using Ajax to Empower Dynamic Searchinb[J].Information Technology and Libraries,2013,25(2):57-64.

[7]Zepeda J S,Chapa S V.From desktop applications towardsajax web applications[C]//Electrical and Electronics Engineering,2007.ICEEE 2007.4th International Conference on.IEEE,2007:193-196.

[8]譚力,楊宗源,謝瑾奎.Ajax技術(shù)的數(shù)據(jù)響應(yīng)優(yōu)化[J].計(jì)算機(jī)工程,2010,36(7):52-54.

[9]Stepien B,Peyton L,Xiong P.Framework testing of web applications using TTCN-3[J].International Journal on Software Tools for Technology Transfer,2008,10(4):371-381.

[10]Roest D,Mesbah A,van Deursen A.Regression testingAjax applications:Coping with dynamism[C]//Software Testing,Verification and Validation(ICST),2010 Third International Conference on.IEEE,2010:127-136.

猜你喜歡
用戶名網(wǎng)頁(yè)頁(yè)面
《護(hù)士進(jìn)修雜志》投稿程序
刷新生活的頁(yè)面
基于CSS的網(wǎng)頁(yè)導(dǎo)航欄的設(shè)計(jì)
電子制作(2018年10期)2018-08-04 03:24:38
機(jī)智的快遞員
基于URL和網(wǎng)頁(yè)類型的網(wǎng)頁(yè)信息采集研究
電子制作(2017年2期)2017-05-17 03:54:56
網(wǎng)頁(yè)制作在英語(yǔ)教學(xué)中的應(yīng)用
10個(gè)必知的網(wǎng)頁(yè)設(shè)計(jì)術(shù)語(yǔ)
同一Word文檔 縱橫頁(yè)面并存
淺析ASP.NET頁(yè)面導(dǎo)航技術(shù)
其實(shí)IE也懂Chrome的心
青铜峡市| 阿瓦提县| 兴城市| 三亚市| 东明县| 额尔古纳市| 洪洞县| 兴宁市| 曲周县| 揭阳市| 五原县| 桑植县| 扎囊县| 民丰县| 石泉县| 山丹县| 维西| 镶黄旗| 曲阳县| 琼中| 石阡县| 吉水县| 辽中县| 来凤县| 新建县| 兴海县| 洱源县| 大连市| 汉中市| 从江县| 昌图县| 章丘市| 申扎县| 鄂伦春自治旗| 汶川县| 二手房| 韶山市| 龙陵县| 昭觉县| 西昌市| 博罗县|