建立跨平台的Ajax應用
來源:互聯網
上載者:User
ajax|建立
何為Ajax?
Ajax不是什麼新技術,是Asynchronous JavaScript and XML的簡稱. 它是javascript和xml等技術應用的結合。具體包括:
DHTML和CSS
使用文件物件模型(Document Object Model)作動態顯示和互動
使用XML和XSLT做資料互動和操作
使用XMLHttpRequest進行非同步資料接收
使用JavaScript將它們綁定在一起
有了Ajax技術,我們可以在一定程度上實現Rich Internet Client介面。我們來看一個例子。要設計一個Web介面,使用者從下拉式列表中選擇一個省份,在另一個清單式列表中顯示該省份的城市清單。而這些省份所擁有的城市資料是儲存在伺服器端資料庫中的。在沒有Ajax之前,使用者在瀏覽器上每選擇一次省份,則發生一次表單提交動作,將所選省份通過表單的POST 請求發送到Servlet/jsp,然後伺服器又返回另一個Web頁面,裡麵包含該省份的資料。而使用者在瀏覽器中所看到的就是頁面被重新重新整理了一次,會有明顯的介面遲滯效果。
在Ajax技術出現之後,這一切都成為過去。使用者看到的幾乎是即時重新整理的Web介面。後面我們會詳細討論如何在不同瀏覽器平台上實現這個例子,以及不同瀏覽器上編寫指令碼所就注意的事項。
XMLHttpRequest---Ajax的靈魂
要在瀏覽器上實現Ajax應用,需要建立一個XMLHttpRequest指令碼對象,我們就是通過此對象來讓javascript與伺服器進行背景非同步互動,而互動的媒介就是XML.
XMLHttpRequest並不是一個W3C規定的標準技術[1], 所以在不同的瀏覽器上,建立XMLHttpRequest對象的方式也不一樣.
1) var xmlHttp;2) if (window.XMLHttpRequest) 3) {4) // 建立 Mozilla/FireFox平台的 XMLHttpRequest 對象5) xmlHttp = new XMLHttpRequest();6) } else if (window.ActiveXObject) 7) {8) // 建立 IE/Windows 平台的XMLHttp對象9) xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");10) }
以上代碼就建立了XMLHttpRequest指令碼對象. 其中第5行是FireFox平台上的建立方式, 我只在FireFox平台上測試過, 由於Firefox是採用Mozilla為核心,理論上也可以在Mozilla上運行.第9行是IE上的建立方式.
所幸的是, 雖然建立方式不一樣,但這兩種對象所提供的方法和屬性幾乎是一模一樣的, <