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)  編輯  收藏

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


          網站導航:
           
          主站蜘蛛池模板: 阿拉善右旗| 和静县| 突泉县| 中江县| 丽水市| 桃园县| 南华县| 高清| 龙岩市| 济阳县| 贵港市| 高要市| 察哈| 太谷县| 汪清县| 东丽区| 宁安市| 敦化市| 大洼县| 新河县| 永胜县| 余江县| 阳曲县| 昆明市| 永定县| 泾源县| 盐亭县| 封开县| 扎鲁特旗| 昌宁县| 交城县| 马山县| 西吉县| 齐河县| 沈阳市| 建德市| 平和县| 上栗县| 淅川县| 堆龙德庆县| 武邑县|