- 不同步的 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 教程
沒有留言:
張貼留言