[摘 要] 隨著互聯(lián)網(wǎng)技術(shù)的發(fā)展,電子商務(wù)也得以迅速普及。傳統(tǒng)的電子商務(wù)網(wǎng)站使用同步交互過程,使得用戶在訪問電子商務(wù)網(wǎng)站時(shí)需要等待較長(zhǎng)時(shí)間或重復(fù)操作,導(dǎo)致大量客戶流失。本文對(duì)AJAX技術(shù)及其工作原理進(jìn)行了深入研究,通過分析傳統(tǒng)的商務(wù)系統(tǒng)請(qǐng)求/響應(yīng)方式所帶來(lái)的用戶交互可用性的不足,將AJAX異步請(qǐng)求訪問技術(shù)應(yīng)用于電子商務(wù)系統(tǒng),極大增強(qiáng)了用戶體驗(yàn)和交互性。對(duì)于構(gòu)建高可用性,智能性和可擴(kuò)展性的Web應(yīng)用具有一定的參考價(jià)值。
[關(guān)鍵詞] AJAX WEB 應(yīng)用 電子商務(wù) 異步通信
電子商務(wù)是指在全球各地廣泛的商業(yè)貿(mào)易活動(dòng)中,在Internet開放的網(wǎng)絡(luò)環(huán)境下,通過瀏覽器/服務(wù)器的方式所進(jìn)行并完成的各種商務(wù)活動(dòng)、交易活動(dòng)、金融活動(dòng)和相關(guān)的綜合服務(wù)活動(dòng)。電子商務(wù)所具有的開放性和全球性的特點(diǎn)為企業(yè)創(chuàng)造了更多的貿(mào)易機(jī)會(huì)。商業(yè)電子化的趨勢(shì)為客戶提供了便利的交易方式和廣泛的選擇。
傳統(tǒng)的web應(yīng)用使用同步交互過程, 當(dāng)用戶訪問數(shù)量較小的時(shí)候,這種方式不會(huì)出現(xiàn)較大問題,而當(dāng)訪問數(shù)量較大帶寬又較窄時(shí),用戶訪問電子商務(wù)網(wǎng)站時(shí)需等待較長(zhǎng)時(shí)間,造成瀏覽器處于等待狀態(tài),甚至造成頁(yè)面不可用。導(dǎo)致一些用戶放棄交易,給企業(yè)造成經(jīng)濟(jì)損失,減弱了電子商務(wù)的優(yōu)越性。
AJAX技術(shù)采用異步交互方式,它的出現(xiàn)改善了傳統(tǒng)的Web 應(yīng)用,減少了用戶訪問網(wǎng)站的等待時(shí)間,實(shí)現(xiàn)了無(wú)重載的頁(yè)面刷新。本文我們將AJAX技術(shù)應(yīng)用到電子商務(wù)系統(tǒng)的設(shè)計(jì)中, 極大改善用戶體驗(yàn),有效的留住客戶,為公司創(chuàng)造更大的利潤(rùn)價(jià)值。
一、AJAX技術(shù)
1.傳統(tǒng)的WEB開發(fā)模式
傳統(tǒng)WEB開發(fā)模式采用同步交互過程,用戶必須等待每個(gè)請(qǐng)求,當(dāng)一個(gè)請(qǐng)求完成后才能獲得結(jié)果,在使用完這些結(jié)果后才會(huì)發(fā)出新的請(qǐng)求。HTTP的設(shè)計(jì)是傳回整個(gè)新的畫面,所以在瀏覽器上必須重載整個(gè)頁(yè)面來(lái)顯示新的頁(yè)面。完全是一種請(qǐng)求—>刷新—>響應(yīng)的模型,用戶只有等請(qǐng)求完成后才能進(jìn)行用戶操作,操作完成后才能提交下一個(gè)請(qǐng)求,用戶行為和服務(wù)器行為是一種同步的關(guān)系。
2.AJAX技術(shù)及特點(diǎn)
AJAX全稱為Asynchronous JavaScript and XML(異步JavaScript和XML),是一種設(shè)計(jì)交互式網(wǎng)頁(yè)應(yīng)用的網(wǎng)頁(yè)開發(fā)技術(shù),它包括:
使用XHTML+CSS來(lái)表示信息。
使用JavaScript操作DOM(Document Object Model)進(jìn)行動(dòng)態(tài)顯示及交互。
使用XML和XSLT進(jìn)行數(shù)據(jù)交換及相關(guān)操作。
使用XMLHttpRequest對(duì)象與Web服務(wù)器進(jìn)行異步通信。
使用JavaScript綁定一切。
AJAX技術(shù)的核心是XMLHttpRequest,它最早由微軟IE5支持這個(gè)對(duì)象,隨后Mozilla1.0、Apple Safari1.2及Opera都陸續(xù)支持。XMLHttpRequest是一組API函數(shù)集,可被JavaScript、JScript、VBScript以及其他web瀏覽器內(nèi)嵌的腳本語(yǔ)言使用,通過HTTP在瀏覽器和web服務(wù)器之間收發(fā)XML或其他數(shù)據(jù)。XMLHttpRequest最大的好處在于可以動(dòng)態(tài)地更新網(wǎng)頁(yè),它無(wú)需重新從服務(wù)器讀取整個(gè)網(wǎng)頁(yè),也不需要安裝額外的外掛程序。AJAX技術(shù)工作原理如圖所示。
AJAX中獲取XMLHttpRequest對(duì)象的方法:
針對(duì)Internet Explorer(IE)瀏覽器
new ActiveXObject(“Msxml2.XMLHTTP”);
new ActiveXObject(“Microsoft.XMLHTTP”);
針對(duì)其他瀏覽器:
new window.XMLHttpRequest();
AJAX技術(shù)的特點(diǎn)表現(xiàn)為:
(1)不需要切換頁(yè)面,就可以快速改變頁(yè)面。
(2)可使用不需等待服務(wù)器的異步請(qǐng)求。
(3)可將PHP、asp、java、asp.net、perl等服務(wù)器上的處理程序搬到客戶端進(jìn)行。
(4)減少數(shù)據(jù)傳輸。
(5)高實(shí)時(shí)互動(dòng)性。
3.AJAX開發(fā)框架
AJAX技術(shù)雖然解決了瀏覽器異步讀取服務(wù)器端數(shù)據(jù)的問題,很多客戶端的操作也變得復(fù)雜和繁瑣。為了解決這些問題,AJAX開發(fā)框架也就應(yīng)運(yùn)而生。AJAX框架具有豐富的插件,封裝了AJAX讀取數(shù)據(jù),提供更友好的接口,能夠解決瀏覽器兼容性的問題,并提供強(qiáng)大的接口更方便的操作DOM,極大提高開發(fā)效率。
常用的AJAX框架有:
Prototype框架,典型用于自動(dòng)填充如Google上的搜索自動(dòng)完善功能;DWR框架,典型用途:用于簡(jiǎn)化頁(yè)面于后臺(tái)model的通信,讓人感覺我們好像可以直接通過JavaScript調(diào)用model;dojo 框架,用于頁(yè)面驗(yàn)證/頁(yè)面的很多華麗效果,使頁(yè)面變的非常美觀;JSON 框架,典型用途:使用model中的方法就像訪問腳本函數(shù)一樣簡(jiǎn)單。Ajax.NET,net平臺(tái)下使用最廣泛的框架。
二、AJAX技術(shù)在電子商務(wù)系統(tǒng)中的應(yīng)用
1.個(gè)性化設(shè)計(jì)
電子商務(wù)網(wǎng)站的個(gè)性化設(shè)計(jì)可分為客戶界面?zhèn)€性化和客戶喜好商品推薦。界面?zhèn)€性化是客戶根據(jù)自己的需求,對(duì)網(wǎng)站的界面進(jìn)行定制,主要包括商品類別模塊的布局、主要模塊的顯示、隱藏與關(guān)閉、界面色彩的設(shè)計(jì)以及商品顯示的方式等,并且可以實(shí)行界面模塊的可拖放操作。
拖放是標(biāo)準(zhǔn)GUI的應(yīng)用。用戶可以選擇一個(gè)特定的對(duì)象,它可以是一個(gè)文件,一些文本等,然后將它移動(dòng)到用戶喜好的另一個(gè)特定的位置。通過AJAX技術(shù),用戶可以享受到與桌面系統(tǒng)更接近的用戶體驗(yàn),同時(shí),用戶無(wú)需采取額外步驟將數(shù)據(jù)提交到服務(wù)器,就能完成更新和服務(wù)器端響應(yīng)。在Google Maps應(yīng)用場(chǎng)景中,用戶就可以通過鼠標(biāo)拖拽的方式在地圖中的街區(qū)之間穿梭漫游。
2.不完全頁(yè)面更新
不完全頁(yè)面更新是利用AJAX技術(shù)使瀏覽器刷新某一塊特定的用戶界面而不需要瀏覽器重新載入整個(gè)頁(yè)面。這個(gè)是非常有必要的考慮,在特定時(shí)間,用戶在和電子商務(wù)網(wǎng)站交互過程中,大部分頁(yè)面內(nèi)容仍然是靜態(tài)的,如電子商務(wù)網(wǎng)站中的頁(yè)眉head.html,頁(yè)腳foot.html,商品類別菜單欄menu.html等,而用戶交互的只是小部分網(wǎng)頁(yè)。假設(shè)當(dāng)用戶想查看某一商品的信息,只需將鼠標(biāo)移動(dòng)到商品圖片上,所有信息將顯示,而頁(yè)面其他部分未發(fā)生任何改變。
在電子商務(wù)系統(tǒng)中,利用AJAX技術(shù),從服務(wù)器端返回一個(gè)純文本數(shù)據(jù)流,客戶端交由瀏覽器負(fù)責(zé)進(jìn)行處理。通過使用XMLHttpRequest對(duì)象來(lái)請(qǐng)求頁(yè)面,服務(wù)器將結(jié)果文本寫入頁(yè)面??蛻舳送ㄟ^異步通信獲取結(jié)果后,不是直接將結(jié)果顯示在頁(yè)面上,而是由客戶端的JavaScript腳本處理之后對(duì)頁(yè)面對(duì)應(yīng)的部分進(jìn)行更新。
在大多數(shù)情況下,重新載入整個(gè)頁(yè)面既浪費(fèi)用戶帶寬,同時(shí)給服務(wù)器帶來(lái)負(fù)擔(dān)。AJAX技術(shù)為我們提供了較好的解決方案,允許瀏覽器僅刷新某一部分網(wǎng)頁(yè)。
3.無(wú)刷新實(shí)時(shí)數(shù)據(jù)更新
傳統(tǒng)上,我們?yōu)g覽網(wǎng)頁(yè),如果頁(yè)面加入最新的數(shù)據(jù),只能是等用戶重新向服務(wù)器端請(qǐng)求時(shí)才能顯示出來(lái).但是,對(duì)于實(shí)時(shí)性較高的電子商務(wù)網(wǎng)站,傳統(tǒng)的做法是不能滿足的。電子商務(wù)后臺(tái)加入新的商品信息或者修改商品信息時(shí),而用戶正在瀏覽商品信息,非常有必要實(shí)行無(wú)刷新實(shí)時(shí)數(shù)據(jù)更新,用戶才能獲取最新商品信息,找到自己合適的產(chǎn)品。比如在Gmail應(yīng)用場(chǎng)景中,新的郵件信息被自動(dòng)接收和顯示。
我們可以讓程序自動(dòng)刷新.定時(shí)向服務(wù)器請(qǐng)求數(shù)據(jù).5秒取一次數(shù)據(jù),10秒取一次數(shù)據(jù).利用XMLHTTP發(fā)出請(qǐng)求并取得數(shù)據(jù).傳到客戶端,客戶端重新組織并顯示數(shù)據(jù)。
三、潛在的安全問題
不用切換頁(yè)面的服務(wù)器通訊,換而言之,對(duì)服務(wù)器來(lái)說,大部分動(dòng)作都是在看不到的遠(yuǎn)程處理的,因此電子商務(wù)系統(tǒng)中的安全問題顯得更為重要。例如,必須隨時(shí)特別注意收到的數(shù)據(jù)是否為外部惡意篡改的資料。
自從JavaScript是一種客戶端的語(yǔ)言,這也說明它最容易接觸到最終用戶。在開發(fā)電子商務(wù)系統(tǒng)時(shí),如果開發(fā)人員將太多在Web應(yīng)用程序內(nèi)部運(yùn)作的重要信息放在JavaScript中,一些惡意用戶可能發(fā)出具有潛在破壞性的拒絕服務(wù)攻擊,甚至是將病毒經(jīng)過應(yīng)用程序下載到服務(wù)器中,導(dǎo)致服務(wù)器癱瘓。
AJAX的優(yōu)點(diǎn)在于減輕服務(wù)器的工作量,而把工作改由處理能力越來(lái)越強(qiáng)的客戶端PC來(lái)執(zhí)行,以便減少服務(wù)器的負(fù)擔(dān)。但是隨著操作方式的不同,反而可能造成請(qǐng)求過多,而使服務(wù)器應(yīng)付不了的可能性。
在開發(fā)電子商務(wù)系統(tǒng)時(shí)不仔細(xì)思考如何減低無(wú)謂的請(qǐng)求,則使用AJAX減少服務(wù)器壓力的效果是無(wú)法實(shí)現(xiàn)的。為了真正實(shí)現(xiàn)輕快的動(dòng)作,數(shù)據(jù)傳送量、請(qǐng)求次數(shù)、服務(wù)器負(fù)擔(dān)等必須整體加以考慮調(diào)整。
四、結(jié)論
目前AJAX技術(shù)正被廣泛的應(yīng)用于基于Web的應(yīng)用系統(tǒng)中,例如:Google將AJAX應(yīng)用于其開發(fā)的Gmail、Google Suggest和Google Maps等網(wǎng)絡(luò)應(yīng)用軟件中,Amazon推出了應(yīng)用Ajax技術(shù)的A9搜索引擎等。這一切的成功都表明,在信息化的網(wǎng)絡(luò)世界,快捷與方便幾乎成為每一個(gè)成功電子商務(wù)系統(tǒng)的關(guān)鍵。
本分分析了當(dāng)前電子商務(wù)應(yīng)用中存在的問題,并充分利用AJAX技術(shù)的特點(diǎn),將該技術(shù)應(yīng)用到電子商務(wù)系統(tǒng)中。從安全角度出發(fā),也指出了AJAX技術(shù)存在的一些問題。AJAX技術(shù)在電子商務(wù)中的應(yīng)用,讓用戶減少等待時(shí)間,提高響應(yīng)速度,給用戶提供更方便、更及時(shí)的服務(wù), 挖掘并留住客戶,為企業(yè)創(chuàng)造更大的價(jià)值。
參考文獻(xiàn):
[1]Garrett J J,Ajax:a new approach to web Applications
[2]Wikipedia (2008) Ajax framework, http://en.wikipedia.org/wiki/Ajax_framework, (22, July, 2008)
[3]姜有輝 高琳琦:個(gè)性化推薦系統(tǒng)中顧客信息的隱式采集方法研究[J].現(xiàn)代情報(bào),2006,11(11):10~13
[4]Google (2008) Google Maps, http://maps.google.com/, (22, July, 2008)
[5]JavaScriptKit.com (2008) RSS Ajax JavaScript ticker,http://www.javascriptkit.com/dhtmltutors/ajaxticker/index.shtml,(22,July, 2008)
[6]顧加強(qiáng):企業(yè)電子商務(wù)系統(tǒng)中的安全問題研究[J].企業(yè)經(jīng)濟(jì).2008,2:92~94