哈哈,今天突然興起,想了想自己對ajax的瞭解,來這裡敘述下。心情好,嘿嘿嘿 ajax是一種創建互動式網頁應用的網頁開發技術。就是在不重新載入頁面的情況下,更新部分網頁。 ajax原理:ajax就是相當於在用戶和伺服器之間加了一個中間層,是用戶操作與伺服器操作相應非同步化。並不是所有的用戶請求都提交給 ...
哈哈,今天突然興起,想了想自己對ajax的瞭解,來這裡敘述下。心情好,嘿嘿嘿
ajax是一種創建互動式網頁應用的網頁開發技術。就是在不重新載入頁面的情況下,更新部分網頁。
ajax原理:ajax就是相當於在用戶和伺服器之間加了一個中間層,是用戶操作與伺服器操作相應非同步化。並不是所有的用戶請求都提交給伺服器,像一些數據驗證和數據處理等都交給了ajax引擎自己來做,只有確定需要從資料庫讀取數據的時候,再由ajax引擎代為向伺服器提交請求。
ajax核心:通過XMLHttpRequest獲取非本頁內容。
ajax優勢:
1、通過非同步處理的模式提升用戶體驗
2、優化瀏覽器與伺服器之間的傳輸,減少不必要數據的往返,減少帶寬(單位時間內通過的數據量)占用
3、ajax引擎在客戶端運行,承擔一部分本來有伺服器承擔的任務,從而減少負載
ajax缺點:
1、不能實時請求和響應伺服器數據
2、不支持瀏覽器回退功能
3、不能提交媒體數據,圖片和文件
原生寫的ajax五部曲,必不能忘記:
function ajax(){
// 1.創建非同步對象
var ajaxObj = new XMLHttpRequest();
// 2.設置url 方法
ajaxObj.open('get','xxx.php');
// 3.發送請求
ajaxObj.send();
// 4.為狀態改變事件 綁定 對應的代碼
ajaxObj.onreadystatechange = function () {
if (ajaxObj.readyState == 4 && ajaxObj.status==200) {
// 5.在數據回來之後,修改界面的內容
// 創建元素,添加到界面上,或者 其他的操作
console.log(ajaxObj.responseText);
}
}
}
關於readyState共有五個狀態(友好網址:http://www.educity.cn/wenda/64512.html):
0 - (未初始化)已經創建對象,還沒有調用send方法
1 - (載入)準備開始發送數據
2 - (載入完成)已發送數據,正在等待響應返回
3 - (交互)正在接受響應,但是接受不完整
4 - (完成)接受響應完畢
(2、3、4都與響應掛鉤,開始、過度、完成)
關於status :200,請求成功(友好網址:http://hibeary.iteye.com/blog/697997):
其他:
1xx - 信息提示
2xx - 成功
3xx - 重定向
4xx - 客戶端錯誤
5xx - 伺服器錯誤