Ajax驅動的Web網站

來源:互聯網
上載者:User
ajax|web|網站 最近,許多Web網站開始在開發人員社區當中引起關注。這些網站獨特之處在於,它們更像是傳統型應用程式而非Web應用程式。當您與它們互動時,它們可以快速在瀏覽器顯示無窮的資訊而又無需重新載入頁面。 

例如,在Google Maps網站(http://maps.google.com/),您可以單擊地圖,縮小或者放大,然後隨心所欲地來回移動滑鼠。瀏覽器會連續地從伺服器讀取資料,但並不需要重新整理瀏覽器。它們使用的不是applet或者類似Flash的其他程式。那麼,它們是如何工作的?

下面介紹Asynchronous JavaScript + XML,即所謂的Ajax。要準確描述什麼是Ajax,最容易的方法是讓其與相反的情況進行對比。對於大部分Web網站,與Web伺服器進行互動是最簡單的通訊方式——就如您在對講機(walkie-talkie)上與好友聊天一樣。您可以一邊講話他在另一邊接聽,或者他說話你接聽,但您不能同時接聽和講話。對於Web使用者,當填寫線上表單然後單擊提交按鈕後,整個頁面就會發送至Web伺服器,使用者必須等待伺服器接受請受。當伺服器完成處理請求時,它就會將處理過的內容發送過來。只有這時,才可以最終重新整理使用者頁面。Ajax是一種減少這一系列事件的嘗試。當使用者位於Ajax類型的Web網站時,瀏覽器可以幕後非同步呼叫Web伺服器而無需發送整個頁面。

具體內容

通常,Ajax沒有軟體開發套件(SDK)。它不是您可以下載的東西。儘管XML出現在Ajax名稱中,但它實際上是幾種可以使用甚至不使用XML技術的結合。仔細研究一下,我們就會發現它是正被使用的幾項技術的混合體。JavaScript、DOM、XMLHttp以及XML是主要的角色。但要緊記,這種方法論既無標準亦無嚴格定義。您在一個執行程式中所看到的,可能不同於另一個執行程式中的情況。但是,Ajax執行程式中最常見的是JavaScript。

當使用者與瀏覽器互動時,JavaScript代碼會處理各種事件。比如按鍵或單擊事件等,並會相應地進行處理。JavaScript使用XMLHttpRequest對象作為瀏覽器和遠程伺服器之間的串連。Microsoft首先在Internet Explorer 5中採用XMLHttpRequest對象。

XMLHttp-Request對象最酷的地方是它可以在背景中啟動並執行同時與Web伺服器非同步進行對話,而無需重新載入頁面。當Web伺服器接收到瀏覽器的請求時,它就會進行處理並將處理過的XML資料返回至瀏覽器。JavaScript引擎收到這種處理過的XML資料,然後使用DOM處理相應的頁面組件。例如,在Ajax驅動的頁面中,如Google Suggest網站(www.google.com/webhp?complete=1&hl=en),當您輸入搜尋欄位時,每一個字母都被非同步發送至伺服器。在輸入時,內容快速顯示在本文的下方。在幕後,每個按鍵都會向伺服器進行數次調用。使用者不會受此影響,因為互動不會被中止。只有一部分頁面會被重新整理。這一切都可以高效地完成,因為僅有一部分頁面資料(而非整個頁面資料)通過線纜發送。

Ajax並非新生事物

應該注意Ajax並非新生事物。該方法論已運用了好多年。Web網站(如Google)正在證明Ajax的有效性、穩定性,並且使Web看起來更像是一個傳統型應用程式:即真正意義的Web開發。Ajax特殊之處在於它可以使用驗證過的現有技術完成這一切。換句話說就是,任何標準瀏覽器(可以處理JavaScript和DOM的瀏覽器)都可以正常工作。您不需要單獨安裝其他外掛程式。

在Magenic,我們可以看到這種方法論如何使我們的用戶端受益。據我們所知,Ajax並非可以取代一切Web網站,但在電腦指令系統中,它應佔有一席之地,並且是我們所需要的一種技能。

ASP.Net 2.0

ASP.Net 2.0可以明顯提高指令碼模型與這種方法論相結合。它們們稱之為指令碼回調而非Ajax。實際上,它們按我早先所描述的那樣進行工作,但是ASP.Net 2.0通過提供工具和支援從而使之更進一步。

注意事項

1、由於許多工作都必須移交給用戶端處理,所以Ajax會影響正確堆疊技術之間的命令列。當使用所現有的方法論設計此類應用程式時,應注意這一點。用戶端(瀏覽器)需要處理更多的工作,JavaScript要完成這些工作會相當複雜。它需要處理按鍵、滑鼠、與DOM互動、處理這些事件和伺服器資料的協調等。

2、還應該注意,許多使用者可能不想在瀏覽器上運行JavaScript。這時需要考慮Web網站使用者的需要。

3、Ajax名稱並非正式的。Adaptive Path的工作人員起了這個容易記住的名字。在ASP.Net 2.0中,它也被稱為“指令碼回調”。

  • Ajax: 一個建立Web應用的新途徑
  • Ajax的錯誤處理機制探討(2)
  • Ajax的錯誤處理機制探討(1)
  • 初次體驗.NET Ajax無重新整理技術
  • Rails系統中的AJAX開發技術簡析(4)


相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.