AJAX 入門


AJAX 入門

The following examples had been tested on Mozilla's Firefox and Microsoft's IE. The document is provided as is. You are welcomed to use it for non-commercial purpose.
Written by: 國立中興大學資管系呂瑞麟 Eric Jui-Lin Lu

請勿轉貼
看其他教材



何謂 AJAX?

AJAX 是 Asynchronous JavaScript And XML 的 簡寫,它的設計理念非常類似 Dynamic HTML(或者 DHTML),主要的目的在於提高 網頁的互動性(interactivity),速度(speed),以及可用性(usability)。 想想看,如果我們能使一個網頁的互動方式可以達到類似 Microsoft Office 的 境界,那麼網頁的可用性可以達到另一個層次。 其實,這個概念並不是很新,只是這樣的技巧被大量的應用於 Google 的網頁之後, 如 Gmail、Google Maps、和 Google Suggest 等,才被重視,而第一個提出 AJAX 這個名詞的就是 Jesse James Garrett。利用類似技巧的公司還有 Writely、Kiko 等。這樣的概念,開始激發人們對於網頁是否會取代 desktop applications 進行 討論,而又進一步的延伸出 What is Web 2.0 的討論。
AJAX 也不是一項單獨的技術,它是由一堆現有的技術所組成,它的主要組成技術有:
  1. XHTML(或者 HTML)加上 CSS 來作為資料的呈現。
  2. 利用 DOM 以及 Javascript 來進行存取資料(大多為 XML)的處理。
  3. 利用 XMLHttpRequest 物件與遠端的 web server 進行非同步的資料交換。
首先,讓我們了解或者體會 AJAX 中的 Asynchronous(非同步)的好處 -- 第一個範例:入門以及非同步性的效果

Written by: 國立中興大學資管系呂瑞麟 Eric Jui-Lin Lu



7 則留言:

  1. 請問一下: 如果我在servlet用session 獲得一個count的值 想把這個值直接輸出在html檔中該如何在html檔中取這個值? 上網查了很多資料 得知這個好像只有ajax可以 但是我還是不太懂...希望老師能幫忙解答

    回覆刪除
    回覆
    1. 以第二個範例為基準,只是回傳的是 count 的值(也就是不需要任何的 HTML 標簽),browser 端就以 responseText 來接收即可。

      刪除
    2. 老師您好:
      還是不太懂(不用任何標籤?).. 如果我是用count 啟動網頁後點選連結可以直接連結到我的JAVA那個檔然後正常輸出 但是我想不用連結的方式(跑到另一個分頁),當我啟用我的網頁,可以直接看到它輸出(或是說如何直接取得後端程式的值然後輸出count) [我是用Eclipse 新增一個class 裡面用do get , session.getAttribute("count")]

      刪除
    3. 老師您好:
      a href /a url是/count

      刪除
    4. 對於需要大量解釋的,我大多請學生直接找我。我再試一次:Ajax 的基本精神是瀏覽器(客戶端)可以"非同步"的呼叫遠端程式。遠端程式執行完了之後(在你的問題中,也就是正確的 count 值[可以有標籤,也可以沒有標籤])傳回給瀏覽器,瀏覽器中的 Ajax 程式負責把 count 值適當的在特定位置呈現出來。

      刪除
    5. count 值也可以利用"同步"的方式(或者非 Ajax 的方式)在網頁上呈現,請參考 http://xml-nchu.blogspot.tw/2012/10/java-servlet.html 的 Servlet vs. CGI 和 Servlet 的生命週期 這兩段。

      刪除
  2. 非常謝謝老師的解說,我大概了解我的問題所在,也解決了我的問題。

    回覆刪除