2011年3月17日 星期四

[AJAX] Introduction

* Definition
  • 不同步的 JavaScript 及 XML(Asynchronous JavaScript And XML)。
  • 2005 年由 Google 推廣來的編程模式,但並不是一種新的编程語言,而是一種使用現有標准的新方法,用於創建快速動態網頁。
  • 基於 JavaScript 和 HTTP 請求(HTTP requests),在無需重新加載整個網頁的情况下,通過在後台與 server 進行少量數據交換,能夠更新部分網頁。
  • ex: 新浪微博、Google 地圖、開心網。

* XMLHttpRequest
  • 是 AJAX 的基礎。
  • 用於在後台與 server 交換數據。
  • 但對於 IE5 and IE6 則需要檢查是否支持 XMLHttpRequest 對象。若支持才創建 XMLHttpRequest 對象,若不支持,則是創建 ActiveXObject。

* 在以下情况中,請使用 POST:
  • 無法使用緩存文件(更新 server 上的文件或數據庫)
  • 向 server 送大量數據(POST 没有數據量限制)
  • 發送包含未知字符的用戶輸入時,POST 比 GET 更穩定也更可靠

* 使用 async=false 時,不要編寫 onreadystatechange 函数,把代碼放到 send() 語句後面即可。

* 使用 async=true 時,在回應處於 onreadystatechange 事件中的就緒狀態執行的函数。

* onreadystatechange 事件
  • 當請求被送到 server 時,一些當 server 回應已經做好被處理的準備時所需要執行的工作。
  • 當 readyState 改變時,就會觸發 onreadystatechange 事件。
  • readyState 屬性存有 XMLHttpRequest 的狀態信息。
  • 當 readyState 等於 4 且狀態為 200 時,表示回應已就緒。
  • 此事件會被觸發四次,對應著 readyState 的每個變化。

* callback 函數是一種以参數形式傳遞给另一個函數的函數。


* Reference
- W3C AJAX 教程

沒有留言:

張貼留言