1. 什麼是Ajax ?
a) 無刷新的數據讀取;
2. 關於瀏覽器緩存:
a) 緩存機制:根據地址來緩存,同樣地址只讀一次;
b) 解決緩存困擾:在文件名後加上一個時間戳參數;保存每次讀取文件的路徑都不一樣,這樣瀏覽器就不會去緩存中拿而去讀新的;
3. Ajax請求動態數據:
a) 請求JSON文件;
b) Ajax 從服務器上所讀取的所有東西都是以文本的形式存在的;
c) eval的使用,將返回的string轉換成arr,或json;
d) 配合DOM使用;
4. eval_r(str):
a) 接受一個字符串作為參數,這個字符串裡面可以放任何JS代碼;
b) eval可以計算字符串裡的值;
5. Ajax的原理:
a) HTTP 請求:
i. GET方式:安全性低、容量小,但便於分享,更適合獲取數據;(如: 瀏覽帖子)
ii. POST方法:更適合上傳數據;(如:用戶註冊)
iii. Get方式會緩存,因為要從服務器上讀東西;Post方式不會緩存東西的;
6. Ajax請求服務器數據的4個步驟:
a) 創建一個Ajax對象 (買個手機);
i. 非IE6 : new XMLHttpRequest();
ii. IE6 : new ActiveXObject("Microsoft XMLHTTP");
b) 連接服務器(撥號);
c) 發送請求,告訴服務器要什麼(說話);
d) 接收返回值(聽);
7. Ajax對象創建的兼容處理:
a) 用if (window.XMLHttpRequest) 取代if (XMLHttpRequest)
b) 原理:
i. 用一個不存在的變量: 出錯;
ii. 用一個不存在的屬性:undefined;
8. Ajax連接服務器:
a) oAjax.open(方法,url, 是否為異步bool);
b) 方法:大多用”Get”;
c) 同步與異步:
i. 同步:任何兩件事不能一塊兒做;
ii. 異步: 多件事兒可以一起進行;Ajax天生就該工作在異步模式下的;
9. Ajax發送請求:
a) oAjax.send();
10.Ajax接收服務器的返回信息:
a) oAjax.onreadystatechange 事件:
i. 它類似於window.onload;
ii. 用來監控請求狀態;
iii. 是當客戶端和服務器那邊有通信發生或有狀態變化的時候會來調用;
iv. 客戶端和服務器的通信不是一步就完成的;
v. oAjax.readyState屬性:告訴我們客戶端和服務器的通信發生到哪一步了; 4 代表完成;
vi. oAjax.readyState == 4 , 只代表完成,不代表成功;
vii. oAjax.status == 200 , 代表成功;
viii. oAjax.status , 400多是客戶端錯誤, 500多是服務器錯誤, 300多是重定向;
ix. oAjax.responseText , 就是取得服務器發回的內容;
11.編寫Ajax庫:
閱讀更多 碼農編程筆記 的文章