[摘要]Ajax技術(shù)為WEB開發(fā)人員提供了一種新的開發(fā)模式,它改變了傳統(tǒng)的基于請(qǐng)求或應(yīng)答的應(yīng)用模式,加入了異步通信的概念,實(shí)現(xiàn)了無重載的頁面刷新,極大的改善了用戶體驗(yàn)。本文首先闡述了Ajax技術(shù)的工作原理,然后從應(yīng)用和局限性兩個(gè)方面給出了該技術(shù)對(duì)電子商務(wù)的影響。
[關(guān)鍵詞]ajax電子商務(wù)用戶體驗(yàn)局限性
Ajax是異步JavaScript和XML的縮寫(Asynchronous JavaScript and XML),包括XHTML、CSS、DOM、XML、XSLT 、XMLHTTPREQUEST和JavaScript等技術(shù),其中核心技術(shù)是JavaScript、XMLHTTPREQUEST和XML。自2005年提出以來,在業(yè)界得到了廣泛關(guān)注,并由于其豐富的功能、交互性以及快速的響應(yīng)能力在WEB應(yīng)用程序的開發(fā)中獲得越來越多的應(yīng)用,對(duì)于電子商務(wù)的影響也日漸重要。
一、Ajax工作原理
和傳統(tǒng)的基于請(qǐng)求或應(yīng)答的web應(yīng)用相比,Ajax應(yīng)用在用戶端和服務(wù)器之間增加了一個(gè)中間層,稱為Ajax引擎,它存在于用戶本地瀏覽器中。用戶發(fā)起的請(qǐng)求并不直接發(fā)送到服務(wù)器端,而是由Ajax引擎接收,然后異步的發(fā)送到遠(yuǎn)程的服務(wù)器去請(qǐng)求數(shù)據(jù),服務(wù)器的響應(yīng)數(shù)據(jù)返回后也是經(jīng)Ajax引擎處理才顯示在用戶界面上。對(duì)于用戶而言,它只是與位于本地的Ajax引擎通信,就像桌面程序一樣,所以它發(fā)出HTTP請(qǐng)求后,不必像傳統(tǒng)的web應(yīng)用那樣等待服務(wù)器的響應(yīng)數(shù)據(jù)來刷新頁面,而是可以繼續(xù)通過頁面和服務(wù)器進(jìn)行其他交互,Ajax引擎會(huì)自動(dòng)在適當(dāng)?shù)臅r(shí)候向服務(wù)器請(qǐng)求數(shù)據(jù)并把返回的數(shù)據(jù)顯示在用戶端。另外,傳統(tǒng)的web應(yīng)用是基于整個(gè)頁面的刷新,而Ajax應(yīng)用只傳輸和更新需要的數(shù)據(jù),而不用刷新整個(gè)頁面,也就是通過網(wǎng)絡(luò)傳輸?shù)牟皇钦麄€(gè)頁面,而是用戶真正需要的數(shù)據(jù),這樣的工作模型不僅加快了用戶請(qǐng)求的響應(yīng)速度,還避免了刷新頁面帶來的屏幕閃爍,其結(jié)果是使web應(yīng)用產(chǎn)生了類似桌面應(yīng)用的用戶體驗(yàn)。下圖顯示了基于Ajax的WEB應(yīng)用的工作原理。
Ajax技術(shù)的關(guān)鍵是Ajax引擎,它主要是通過一個(gè)稱為XMLHTTPREQUEST(針對(duì)IE瀏覽器稱為XMLHTTP)的對(duì)象來實(shí)現(xiàn)的,由這個(gè)對(duì)象來接受用戶請(qǐng)求,然后異步發(fā)送給服務(wù)器,最后調(diào)用注冊(cè)在該對(duì)象上的回調(diào)函數(shù)來處理服務(wù)器返回的文檔,從而實(shí)現(xiàn)頁面的更新。
二、Ajax技術(shù)在電子商務(wù)中的應(yīng)用
Ajax技術(shù)最大的好處就是能改善用戶的上網(wǎng)體驗(yàn),這對(duì)于依賴于“眼球經(jīng)濟(jì)”的電子商務(wù)來說具有很大的吸引力,從事電子商務(wù)活動(dòng)的企業(yè)都希望自己的門戶網(wǎng)站具有獨(dú)特的魅力,能夠吸引和留住更多的顧客;其次使用Ajax技術(shù)可以在一定程度上減少網(wǎng)絡(luò)帶寬,提高網(wǎng)站的利用率,相對(duì)于刷新頁面的方式,采用Ajax技術(shù)節(jié)省的帶寬比可用下面的公式計(jì)算:
(交互次數(shù)(刷新頁交互流量 - AJAX頁交互流量) - AJAX頁首次加載增加量)/ (刷新頁頁面大小×交互次數(shù) + 首次加載頁面大小)
從這個(gè)公式可以看出,交互次數(shù)越多,節(jié)省的帶寬越大,實(shí)際應(yīng)用中,節(jié)省的帶寬可達(dá)10%~60%。另外采用Ajax技術(shù)的網(wǎng)站還可以減輕服務(wù)器端的負(fù)荷,降低用戶的訪問等待時(shí)間。因此,Ajax技術(shù)在建設(shè)電子商務(wù)網(wǎng)站中可以發(fā)揮很大的作用,具體的講,Ajax技術(shù)可在以下方面進(jìn)行應(yīng)用:
1.用戶注冊(cè)或數(shù)據(jù)驗(yàn)證類應(yīng)用
現(xiàn)在,很多電子商務(wù)網(wǎng)站實(shí)行的會(huì)員制,用戶使用網(wǎng)站前必須先注冊(cè)。注冊(cè)中最重要是要填寫登錄名,該登錄名在網(wǎng)站數(shù)據(jù)庫內(nèi)必須是惟一的,因此每個(gè)新注冊(cè)的用戶注冊(cè)成功之前都需要先查詢一下數(shù)據(jù)庫,如果有重復(fù)就需要用戶重新填寫。傳統(tǒng)的做法是在用戶填寫完注冊(cè)數(shù)據(jù)后,提交該頁面,該頁面通過腳本程序同后臺(tái)的數(shù)據(jù)庫交互,提交的結(jié)果是一個(gè)新頁面,要么顯示提交成功,要么出現(xiàn)重名要求重新填寫。在這個(gè)過程中,整個(gè)注冊(cè)頁面通過網(wǎng)絡(luò)傳送到服務(wù)器端,如果注冊(cè)項(xiàng)目很多,失敗的注冊(cè)將引起用戶較長(zhǎng)時(shí)間來等待頁面刷新,作為一種改進(jìn)方法,可以將填寫登錄名的頁面同其它注冊(cè)項(xiàng)頁面分開來提交,但在注冊(cè)中提交多個(gè)頁面對(duì)用戶來說并不是一個(gè)好的體驗(yàn)。采用Ajax技術(shù)可以很好的解決這個(gè)問題。用戶填寫好登錄名后,一旦輸入文本框失去焦點(diǎn),該事件的處理函數(shù)就會(huì)通過Ajax調(diào)用來檢查用戶填寫的登錄名是否存在重復(fù),而且這個(gè)調(diào)用是異步的,用戶可以繼續(xù)填寫其它的注冊(cè)項(xiàng),服務(wù)器端經(jīng)過查詢數(shù)據(jù)庫后返回的消息(如“該用戶已存在”)將顯示在注冊(cè)頁面的適當(dāng)位置,提醒用戶是否需要重新填寫登錄名。在這個(gè)過程中,網(wǎng)絡(luò)上傳輸?shù)牟皇钦麄€(gè)頁面而是少量的文本片段,如用戶填寫的登錄名和服務(wù)器端返回的消息等,因而響應(yīng)速度很快,這當(dāng)然會(huì)給用戶帶來相當(dāng)好的感受。事實(shí)上對(duì)用戶輸入數(shù)據(jù)進(jìn)行數(shù)據(jù)庫驗(yàn)證這類應(yīng)用在電子商務(wù)應(yīng)用中很常見,比如在注冊(cè)網(wǎng)絡(luò)銀行時(shí),對(duì)用戶輸入的金融卡卡號(hào)的有效性驗(yàn)證就可以采用同樣的機(jī)制。
2.商品展示
電子商務(wù)網(wǎng)站需要展示待交易商品的各項(xiàng)信息,一般可以通過文字、圖片、視頻等來表現(xiàn)。Ajax技術(shù)在這方面有很多的應(yīng)用,具有自己獨(dú)特的魅力,比如對(duì)于商品的分類顯示可以采用基于Ajax的動(dòng)態(tài)樹型結(jié)構(gòu),這種結(jié)構(gòu)在進(jìn)行顯示、展開、添加、修改和刪除等操作時(shí),不會(huì)引起頁面重載,而且只在需要時(shí)才去請(qǐng)求數(shù)據(jù)庫,進(jìn)行數(shù)據(jù)加載,不僅速度很快,也大大減少了服務(wù)器端的負(fù)擔(dān)。又如在商品圖片的處理上,可以實(shí)現(xiàn)類似“google earth”中的效果,如通過鼠標(biāo)的滾動(dòng)鍵實(shí)現(xiàn)圖片的放大縮小,用鼠標(biāo)拖動(dòng)圖片旋轉(zhuǎn),從而多視角展示商品。融入了Ajax技術(shù)的商品展示,會(huì)給用戶留下深刻的印象,起到提升網(wǎng)站的人氣和用戶忠誠度的作用。
3.交互過程
現(xiàn)在的電子商務(wù)網(wǎng)站提倡個(gè)性化,十分注意滿足用戶的需求,因此也非常關(guān)注同用戶的交互過程。Ajax在這方面也可以體現(xiàn)價(jià)值。首先是購物車,用戶在購物過程中購物車是實(shí)現(xiàn)交易過程的關(guān)鍵,基于Ajax的購物車相對(duì)傳統(tǒng)的購物車可以更快獲得服務(wù)器端的響應(yīng),這會(huì)帶來一些好處,比如用戶的訂購數(shù)超過庫存的錯(cuò)誤消息不用等到用戶提交頁面才知道。其次是用戶的意見反饋,通常是采用留言簿或討論區(qū)的方式,可以利用Ajax技術(shù)設(shè)計(jì)出反應(yīng)異常靈敏的客戶留言簿或討論區(qū),對(duì)于傳統(tǒng)留言簿,刷新時(shí)是對(duì)整個(gè)留言頁面進(jìn)行更新,當(dāng)留言很多時(shí),頁面刷新相當(dāng)費(fèi)時(shí)間,刷新前也不能看到別的用戶新寫的留言,而對(duì)于采用Ajax的留言簿,用戶完成留言后不用刷新立即可以看到自己的留言,同時(shí)也可以在第一時(shí)間看到其他人新添的留言,這當(dāng)然會(huì)給用戶帶來良好的感受。
4.其他應(yīng)用
事實(shí)上,Ajax技術(shù)可用于任何只需要局部更新網(wǎng)頁的場(chǎng)景,比如利用文本編輯框填寫或修改數(shù)據(jù)、調(diào)查或投票、電子郵件、聯(lián)機(jī)幫助文件等,都可以利用Ajax技術(shù)來改善用戶的體驗(yàn)。
三、Ajax技術(shù)在電子商務(wù)中的局限性
盡管Ajax為傳統(tǒng)的Web應(yīng)用帶來了革命性的變化,也為電子商務(wù)帶來諸多應(yīng)用,但它并非無所不能,其具有的局限性一定程度的影響了它的發(fā)展。
1.對(duì)網(wǎng)上用戶行為分析技術(shù)的影響
用戶訪問電子商務(wù)網(wǎng)站時(shí)的各種行為會(huì)通過服務(wù)器的日志、Cookie等方式保存下來,然后企業(yè)利用數(shù)據(jù)挖掘等技術(shù)可以有效地分析從網(wǎng)上獲取的這些數(shù)據(jù),發(fā)現(xiàn)隱藏在其后的規(guī)律性,提取出有效信息,進(jìn)而指導(dǎo)企業(yè)調(diào)整營(yíng)銷策略,采取精準(zhǔn)營(yíng)銷、推薦營(yíng)銷等更為個(gè)性化的營(yíng)銷手段,使企業(yè)處于更有利的競(jìng)爭(zhēng)位置。由于直接挖掘服務(wù)器日志效率較低,現(xiàn)在大中型的網(wǎng)站基本采用cookie跟蹤,通過路徑分析等方式來進(jìn)行數(shù)據(jù)挖掘,但對(duì)于采用了Ajax技術(shù)的網(wǎng)站,無需用戶多次載入網(wǎng)頁,用戶甚至可以在一個(gè)頁面上完成所有交互,這使得基于路徑分析法的數(shù)據(jù)挖掘?qū)⒊霈F(xiàn)偏差,直接會(huì)影響企業(yè)的營(yíng)銷策略。因此,必須對(duì)原有的分析技術(shù)和工具進(jìn)行改進(jìn)以適應(yīng)Ajax帶來的挑戰(zhàn),但目前這方面的進(jìn)展比較緩慢。
2.對(duì)網(wǎng)絡(luò)廣告的影響
網(wǎng)絡(luò)廣告對(duì)電子商務(wù)網(wǎng)站具有重要意義,Ajax技術(shù)的應(yīng)用對(duì)網(wǎng)絡(luò)廣告的投放模式、投放效果及發(fā)布將產(chǎn)生影響。在傳統(tǒng)方式下,用戶每次刷新頁面的時(shí)候就可以裝載一個(gè)新廣告,而對(duì)于采用了Ajax技術(shù)的web頁面,用戶更新頁面內(nèi)容時(shí)不需要刷新整個(gè)頁面,也就不能裝載新的廣告,這就減少了網(wǎng)站能夠展示的廣告數(shù)量;如果網(wǎng)絡(luò)廣告按照點(diǎn)擊率或展示次數(shù)來計(jì)費(fèi)的話,采用Ajax技術(shù)后網(wǎng)站的點(diǎn)擊率和展示次數(shù)都會(huì)發(fā)生顯著變化,從而影響廣告費(fèi)用的計(jì)算;另外使用Ajax技術(shù)的網(wǎng)站,頁面刷新(即廣告裝載)的決定權(quán)更多交給了網(wǎng)頁開發(fā)者而不是廣告的投放者,這對(duì)于廣告投放者來說有時(shí)是不可接受的。如果Ajax發(fā)展的趨勢(shì)不可逆轉(zhuǎn),那么網(wǎng)絡(luò)廣告業(yè)就必須認(rèn)真的對(duì)待這些問題了。
3.對(duì)用戶上網(wǎng)習(xí)慣的影響
無重載刷新對(duì)習(xí)慣了請(qǐng)求或應(yīng)答方式的用戶將是一個(gè)挑戰(zhàn)。許多用戶熟悉傳統(tǒng)的請(qǐng)求或應(yīng)答的WEB調(diào)用方式,對(duì)基于Ajax的頁面更新方式會(huì)感到迷惑,比如用戶不太清楚現(xiàn)有頁面的數(shù)據(jù)是舊的還是已經(jīng)更新過的。目前的解決辦法有:在相關(guān)位置進(jìn)行更新進(jìn)度提示,把數(shù)據(jù)更新的區(qū)域設(shè)計(jì)得比較明顯,數(shù)據(jù)更新后給用戶提示等。
四、結(jié)束語
Ajax的異步工作方式為我們帶來了一種全新的程序開發(fā)模式,它既不同于傳統(tǒng)的WEB開發(fā),也有別于桌面應(yīng)用程序的開發(fā),實(shí)際上它具備了兩種開發(fā)模式的部分優(yōu)點(diǎn),從形式上看它是WEB應(yīng)用,采用的B/S模式,但從效果上看,它又類似桌面應(yīng)用,給用戶以完美體驗(yàn)。Ajax對(duì)于電子商務(wù)的發(fā)展而言,機(jī)遇大于挑戰(zhàn),將會(huì)有越來越多的企業(yè)把Ajax技術(shù)應(yīng)用到其電子商務(wù)建設(shè)中去,從而為我們帶來更加絢麗多彩的網(wǎng)絡(luò)世界。
參考文獻(xiàn):
[1]游麗貞郭字春李純喜:Ajax引擎的原理和應(yīng)用[J]. 微計(jì)算機(jī)信息.2006,22(2)
[2]Brett Mclauqhlin. Mastering Ajax, Part 1: Introduction to Ajax[J].http://www.ibm.com/developerworks.2005,12
[3]Christopher L Merrill. Using AJAX to Improve the Bandwidth Performance of Web Applications[J].http://www.webperformanceinc.com/library/reports/AjaxBandwidth/index.html.2006
[4]王雁:http://www.marketingman.net/Blog/Kelvin/ajaxandmarketing.html.2006-12-20
本文中所涉及到的圖表、注解、公式等內(nèi)容請(qǐng)以PDF格式閱讀原文。