DIV CSS 佈局教程網

 DIV+CSS佈局教程網 >> 網頁腳本 >> JavaScript入門知識 >> AJAX入門 >> AJAX詳解 >> [翻譯]使用XMLHTTPRequest對象(2006.1)
[翻譯]使用XMLHTTPRequest對象(2006.1)
編輯:AJAX詳解     

作者:Jim Ley(>主頁)

譯者:Sheneyan(子烏)

時間:2006.1.29

英文原文:>http://jibbering.com/2002/4/httprequest.Html外鏈

子烏注:這篇文章我想看過的人很多,翻譯的版本也有許多,我之所以要再來翻譯一次,是因為這篇文章的時效性(看下一段作者說明),以及文字的優雅。文字的時效性,它居然是2006年1月再次更改的版本,也就是說,我也許就是第一個翻譯這個版本的人哦:P。文字的優雅,有能力、有空還是得看看原文,那英文的美感,在類似的技術文章中算很少見的(也許是我少見多怪,等我看多了就不會這樣了~)

  這篇文章寫於2002年4月,由於這個對象最終會變得越來越流行,我已經決定修改並更新這篇文章。>2002版仍然可以在線閱讀,同樣的還有>2004年9月版和>2005年8月版。你正在閱讀的是2006年1月版。

  在Windows上的Internet Explorer,Mac OS-X上的Safari,跨平台的Mozilla,KDE上的Konqueror,Java寫的IceBrowser,以及另一個跨平台的Opera(包括SymBian)都為客戶端的Javascript腳本提供了一個方法來產生HTTP請求。卑微的出身和少許推崇者的古怪命名,最終成長為在某些領域裡的核心技術,它叫作“Ajax”(欣賞一下原文:From the humble begins as an oddly named object with few admirers, it's blossomed to be the core technology in something called AJax)。 [>腳注1].

  這個對象讓許多事情變得比原來優雅、簡潔,並引入了一些在其他方面也一樣重要的東西,比如HEAD請求來看一個資源的最後修改時間,或者只是看它是否存在。它讓你的編碼(scripting?)的選擇更加靈活,允許POST提交,比如PUT、DELETE等等操作的可能性而不需要頁面的改變。這些方法日益廣泛地應用於創建類似>G-Mail的更強大提供更迅捷(snappIEr)用戶界面卻使用更少帶寬的web應用程序。

為什麼叫做“XML”HTTP Request對象?

  雖然這個對象被叫做“XML HTTP Request對象”,但它並不只局限於使用XML,它能夠請求或發送任何類型的文檔,雖然對於Javascript來說,處理二進制流很成問題。

創建對象

  在Internet Explorer裡,你通過new ActiveXObject("Msxml2.XMLHTTP")new ActiveXObject("Microsoft.XMLHTTP")(取決於安裝的MSXML版本)來創建這個對象。在Mozilla和Sarafi中(以及未來支持這個對象的類似它們倆的浏覽器(UA,User Agent)),你使用new XMLHttpRequest(),而IceBrowser使用另外一個方法:window.createRequest()

  這意味著你需要在不同的浏覽器上展現不同的腳本(子烏注:小小抱怨一句,我還是覺得這點小小麻煩比起css的兼容來說,簡單多了。。。。這只是個人看法,也許過幾個月,我熟悉了CSS,就不會發這種牢騷了~),在一個浏覽器上能夠干得好好的代碼,在另外一個上面八成會出錯。下面的腳本解決了這個問題,而且如果它不支持,變量XMLhttp將被設置為false並允許恰當的錯誤信息,並在這個對象不可用的時候降低要求(degradtion),使用其他普通的http傳輸方法。留有後路是很重要的,即使在ie中,這個對象也經常由於安全設置的略微修改(通常是由於IE的入侵漏洞造成的)而被禁止。當你真的無法實現功能的時候而需要提供低等級的支持時,底下是一些方法。我建議是提供另一個變通的頁面。比如GMail許諾說他們在未來(子烏注:呃。。。這文章是2002年寫的,那時候gmail還沒實現該功能)會提供一個更安全的版本,很有可能是完全沒有Javascript--完全的退化。

Language:Javascript, parsed in: 0.009 seconds, using GeSHi 1.0.7.12
XML學習教程| jQuery入門知識| AJAX入門| Dreamweaver教程| Fireworks入門知識| SEO技巧| SEO優化集錦|
Copyright © DIV+CSS佈局教程網 All Rights Reserved