XMLHTTP是一種技術嗎?

來源:互聯網
上載者:User

今天有人在MSN上問我有關XMLHTTP的問題,並問我有關XMLHTTP與Servlet結合的問題。我直接告訴他,直接採用XmlRPC或者Hessian吧。

對於XMLHTTP,我發現很多不瞭解它的人認為它很神秘。JavaEye上的dlee撰文聲稱有了XMLHTTP就不用MVC了等等“複雜”的模式,甚至有可能將WEB應用化三層為兩層。在我看來,XMLHTTP的引入,僅僅,不過,是改善了使用者介面,將原來需要重新整理的東西變成不需要重新整理而已。這種需求在以前的WEB程式中並不常見,但在現代的應用程式中,隨著RIA的思想開始崛起,使用者體驗變得重要起來,例如:頁面無重新整理(典型的如樹形結構的展開),或者頁面的局部重新整理。能夠完成這項功能的XMLHTTP當然也顯得重要起來。

XMLHTTP是一項技術嗎?我從來都不這麼認為。無論在Mozilla瀏覽器,還是在IE,他的方法/屬性就那麼幾個:open, send, onreadystatechage, responseText, responseXML……這麼抽象的東西,完成了原來瀏覽器的發送請求/接受資料的請求。這麼看來,XMLHTTP不過是瀏覽器的一個附屬線程而已。你可以用它實現你想要得無重新整理等等一系列效果,那是有條件的:

這個條件就是,在沒有XMLHTTP之前和之後,你的代碼都不會因此而減少,更多的情況是代碼增多。對於簡單的應用,例如使用者登陸,像伺服器提交使用者名稱密碼,返回一個true或者false來代表登入成功與否。有了XMLHTTP之後,這個登陸效果可以做得很眩,同時代碼跟沒有XMLHTTP之前差不多。但是對於複雜的應用,例如大資料的列表,那麼你有如下幾種選擇來使用XMLHTTP:

1 對於懶人,最簡單的方法莫過於在伺服器端將列表的HTML產生(大段的<tr><td>之類),然後輸出。用戶端用xmlhttp.responseText,將資料取得。一眼便知,這種方式除了介面無重新整理,代碼量,難度等等不會有多大的變化。

2 對於喜歡XML或者喜歡結構化資料的人,會將資料封裝成為xml節點,然後在用戶端用xmlhttp.responseXML取得XML。然後就有兩種處理了:在我看來,最簡單的處理就是寫一個XSL對取得的XML進行解析然後顯示,最笨的方法當然是自己解析XML節點樹,然後進行處理並顯示了。附帶提一句,我在做一個OLAP系統的前台展示,就是用的前一種方法。因為OLAP系統的分析結果的XML形式固定。

3 對於基於命令的系統或者命令有限或者規則簡單的系統,可以自行設計一套訊息格式,在用戶端與伺服器端之間進行“編碼->發送請求->解碼->處理->發送結果“的遊戲。這種玩法是我的LIVECHAT情境聊天室中採取的方式。這裡面比較麻煩的是設計訊息格式以及伺服器端的編碼、解碼處理。如果可以,建議採用XMLRPC來實現。

也許還有其他方式的應用,我沒有涉及到。但是,無論哪種方式,我們都可以看到,這些操作僅僅是前台表現層面的。對於商務邏輯,資料訪問,許可權控制等等,XMLHTTP有辦法處理嗎?

XMLHTTP僅僅是一種方式,一種無重新整理與伺服器進行互動的方式。他能夠很大程度的改善web application的使用者體驗(而不是開發模式,更不談開發效率)。實際上,在普通的web系統中採取xmlhttp是完全可行的,但是在需要即時操作的項目中(例如我的LiveChat),xmlhttp並不一定是最好的選擇。因為建立一個xmlhttp/xmldom對象的開銷比較大,假定每隔一秒向伺服器發送訊息,並用XMLDOM處理返回的xml節點,用戶端不一定都能承受。我試著做了一些緩衝池,但是在IE環境下表現並不出色。

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.