Ajax—初識

來源:互聯網
上載者:User

標籤:des   style   http   java   color   使用   os   資料   

    看DRP的過程,重新學習了一遍Ajax,更深刻的體會到了Ajax所具有的魅力。Ajax是一種技術或者方法,更是一


種藝術。它讓我們的程式以一種更完美的姿態呈現在使用者面前。下面就讓我們一起走進Ajax的世界。


簡介
全名:

    AsynchronousJavaScript and XML。


工作原理:

      Ajax的工作原理相當於在使用者和伺服器之間加了—個中介層(AJAX引擎),使使用者操作與伺服器響應非同步化。並不

是所有的使用者請求都提交給伺服器,像—些資料驗證和資料處理等都交給Ajax引擎自己來做,只有確定需要從伺服器讀

取新資料時再由Ajax引擎代為向伺服器提交請求。

    通過XmlHttpRequest對象來向伺服器發非同步請求,從伺服器獲得資料,然後用JavaScript來操作DOM而更新

頁面。


核心技術:

    非同步


主要成員:

      JavaScript、XMLHTTPRequest、DOM


應用:

    新浪微博、Google地圖等


同步與非同步

    

    提到Ajax,必然會提到同步和非同步。


    同步:可以理解為單線程,也可以理解為“死心眼”。也就是在執行完一個函數或方法之後,一直等待系統返回

值或訊息,這時程式是出於阻塞的,只有接收到返回的值或訊息後才往下執行其他的命令。


   非同步:可以理解為多線程(非同步肯定是多線程)。執行完函數或方法後,不必阻塞性地等待返回值或訊息,只需

要向系統委託一個非同步過程,那麼當系統接收到返回值或訊息時,系統會自動觸發委託的非同步過程,從而完成一個完

整的流程。  

    

    還不懂?同步就是你叫我去吃飯,我聽到了就和你去吃飯;如果沒有聽到,你就不停的叫,直到我告訴你聽到

了,才一起去吃飯。非同步就是你叫我,然後自己去吃飯,我得到訊息後可能立即走,也可能等到下班才去吃飯。所

以,要我請你吃飯就用同步的方法,要請我吃飯就用非同步方法,這樣你可以省錢。

    

    而我們的Ajax只要就應用了非同步,來展現自己的魅力,提高使用者的體驗度。說到這裡就不得不提Ajax的核心對象

XMLHttpRequest。正是它的存在才可以讓Ajax向世人展現它強大的功能。

 

XMLHttpRequest介紹

這裡不詳細介紹XMLHttpRequest的屬性和方法,我們大致說一下XMLHttpRequest的工作過程:

  1. 為得到XMLHttpRequest對象執行個體的一個引用,可以建立一個新的執行個體,也可以訪問包含有XMLHttpRequest執行個體的一個變數。 
  2. 告訴XMLHttpRequest對象,哪個函數會處理XMLHttpRequest對象狀態的改變,為此要把對象onreadystatechange的屬性設定為指向JavaScript函數的指標。 
  3. 指定請求的屬性。XMLHttpRequest對象的open()方法會指定將發出的請求。open()方法取3個參數:一個是指示所用方法(通常是GET或POST)的串;一個是表示目標資源URL的串;一個是Boolean值,指示請求是否是非同步。 
  4. 將請求發送給伺服器。XMLHttpRequest對象的send()方法把請求發送到指定的目標資源。send()方法接受一個參數,通常是一個串或一個DOM對象。這個參數作為請求體的一部分發送到目標URL。當向send()方法提供參數時,要確保open()中指定的方法是POST。如果沒有資料作為請求體的一部分被發送,則使用null。 

    這些步驟很直觀:你需要XMLHttpRequest對象的一個執行個體,要告訴它如果狀態有變化該怎麼做,還要告訴它向哪

裡發送請求以及如何發送請求,最後還需要指導XMLHttpRequest發送請求。再簡單點就是:建立出一個執行個體,告訴他

他需要做什麼,為誰服務。


優缺點

    

任何一件藝術品都有不是完美的,Ajax也一樣,自從Ajax出現之後,對它的討論就沒有停止過。優點顯而易見:

  1. 局部重新整理頁面,減少使用者心理和實際的等待時間,帶來更好的使用者體驗
  2. 減輕伺服器的負擔,按需取資料,最大程度的減少冗餘請求
  3. 基於xml標準化,並被廣泛支援,不需安裝外掛程式等
  4. 進一步促進頁面和資料的分離

 

但它的缺點也很明顯,有人總結出Ajax的“七宗罪”,這裡我們就不詳細說了,我大致總結一下它的缺點:

  1. ajax幹掉了back按鈕,即對瀏覽器後退機制的破壞。
  2. 對搜尋引擎的支援比較弱。
  3. 破壞異常處理機制

總結:

    這是一篇協助大家瞭解Ajax的文章,沒有太多詳細的技術講解,Ajax是一門非常實用的技術,它可以很好的提高

客戶的體驗度,但它也不是完美的,很多情境下並不適合使用它,比如:需要替換大量文本的情況下。

 

相關文章

聯繫我們

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