posts - 495,  comments - 11,  trackbacks - 0

          一、AJAX之“X”

          眾所周知,異步交互、JavaScript腳本和XML封裝數據是AJAX的三大特征。其實,在實際應用中,不需要牢牢套死這三條大律,在我看來,AJAX - X,即去掉用XML封裝數據,也不失為一種好的設計思路,如果應用恰當,更顯輕盈步伐和巧妙思路。

          一般讀取AJAX返回的XML結構的數據時使用XMLHttp的responseXML對象屬性,同時,XMLHttp也提供了另外一個屬性,即ResponseText,通過這個屬性,XMLHttp可以接受來自服務器的文本結構的字符串信息。去掉XML的AJAX可以使用ResponseText這個對象屬性,很靈活的操控返回數據的格式,可以自定義格式,比如我通常喜歡用c語言的那種文件流方式定義返回的字符串結構,有文件頭和具體的文件信息實體,文件頭分為狀態信息以及文件字符長度,我摒棄了文件字符長度的定義,規定死接受的ResponseTex字符串中的第一位為狀態碼,比如設定常量值0表示一起正常,非0的數字表示不正常,甚至有錯誤等。如果有非0值,程序自動取第二位起到257位(長度為256)的字符串組成為狀態信息,從258位開始到末尾的字符串就是服務器返回的正常結果信息。

          substring(0,1)取狀態碼

          substring(1,256)取服務器錯誤信息(錯誤信息不夠256位用空格補齊,取到數據后進行Trim處理)

          substring(256,末尾)取服務器返回的數據信息

          三次substring即完成了一個簡單但完整的交互工作。比起XML解析組件來說要快的多。

          用ResponseText比封裝為XML處理數據快和簡單是一個原因,另一個原因是可操控性更大更靈活,打開Google Suggest,在搜索框輸入字符可以給你給出拼寫提示,Suggest就是應用了AJAX技術,不過它在從服務器返回數據時并沒有使用XML封裝,也沒有自定義ResponseText格式,而是直接將返回代碼組織成js腳本,通過瀏覽器返回后直接執行,如eval(XMLHttp.ResponseText)這樣的方式進行執行,http://www.google.com/complete/search?hl=en&js=true&qu=ajax 通過這個鏈接你可以看到Suggest利用AJAX得到的返回數據,此頁面是在Google Suggest的搜索框中輸入"AJAX"后得系統動態返回的數據。

          posted on 2007-05-02 10:30 jadmin 閱讀(94) 評論(0)  編輯  收藏

          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          主站蜘蛛池模板: 灯塔市| 当涂县| 无棣县| 兴和县| 云霄县| 长顺县| 当阳市| 洛隆县| 红桥区| 额敏县| 桐城市| 新乡市| 扶绥县| 孟连| 卓尼县| 澳门| 拜泉县| 获嘉县| 康平县| 安庆市| 兰坪| 铁岭县| 金川县| 莱西市| 景东| 南宁市| 竹溪县| 任丘市| 中宁县| 安徽省| 金堂县| 文安县| 桐庐县| 社旗县| 城步| 来安县| 烟台市| 石首市| 邓州市| 平南县| 永新县|