一、AJAX之“X”
眾所周知,異步交互、JavaScript腳本和XML封裝數(shù)據(jù)是AJAX的三大特征。其實,在實際應(yīng)用中,不需要牢牢套死這三條大律,在我看來,AJAX - X,即去掉用XML封裝數(shù)據(jù),也不失為一種好的設(shè)計思路,如果應(yīng)用恰當,更顯輕盈步伐和巧妙思路。
一般讀取AJAX返回的XML結(jié)構(gòu)的數(shù)據(jù)時使用XMLHttp的responseXML對象屬性,同時,XMLHttp也提供了另外一個屬性,即ResponseText,通過這個屬性,XMLHttp可以接受來自服務(wù)器的文本結(jié)構(gòu)的字符串信息。去掉XML的AJAX可以使用ResponseText這個對象屬性,很靈活的操控返回數(shù)據(jù)的格式,可以自定義格式,比如我通常喜歡用c語言的那種文件流方式定義返回的字符串結(jié)構(gòu),有文件頭和具體的文件信息實體,文件頭分為狀態(tài)信息以及文件字符長度,我摒棄了文件字符長度的定義,規(guī)定死接受的ResponseTex字符串中的第一位為狀態(tài)碼,比如設(shè)定常量值0表示一起正常,非0的數(shù)字表示不正常,甚至有錯誤等。如果有非0值,程序自動取第二位起到257位(長度為256)的字符串組成為狀態(tài)信息,從258位開始到末尾的字符串就是服務(wù)器返回的正常結(jié)果信息。
substring(0,1)取狀態(tài)碼
substring(1,256)取服務(wù)器錯誤信息(錯誤信息不夠256位用空格補齊,取到數(shù)據(jù)后進行Trim處理)
substring(256,末尾)取服務(wù)器返回的數(shù)據(jù)信息
三次substring即完成了一個簡單但完整的交互工作。比起XML解析組件來說要快的多。
用ResponseText比封裝為XML處理數(shù)據(jù)快和簡單是一個原因,另一個原因是可操控性更大更靈活,打開Google Suggest,在搜索框輸入字符可以給你給出拼寫提示,Suggest就是應(yīng)用了AJAX技術(shù),不過它在從服務(wù)器返回數(shù)據(jù)時并沒有使用XML封裝,也沒有自定義ResponseText格式,而是直接將返回代碼組織成js腳本,通過瀏覽器返回后直接執(zhí)行,如eval(XMLHttp.ResponseText)這樣的方式進行執(zhí)行,http://www.google.com/complete/search?hl=en&js=true&qu=ajax 通過這個鏈接你可以看到Suggest利用AJAX得到的返回數(shù)據(jù),此頁面是在Google Suggest的搜索框中輸入"AJAX"后得系統(tǒng)動態(tài)返回的數(shù)據(jù)。
posted on 2007-05-02 10:30
jadmin 閱讀(91)
評論(0) 編輯 收藏