ajax datatype_Ajax的基本使用
Asynchronous javascript and xml
Ajax的實現(xiàn) : 基于一個對象XMLHttpRequest?(如何獲取?)
步驟: 1. 獲取ajax對象
????function getRequestObject() {
if (window.XMLHttpRequest) {
// 支持Opera, Safari, Mozilla, Chrome,Internet Explorer 7, and IE 8.
return(new XMLHttpRequest());
} else if (window.ActiveXObject) {
//支持IE5.5或IE6
return(new ActiveXObject("Microsoft.XMLHTTP"));
} else {
//其他低版本或者更老的瀏覽器不支持
return(null);
}
}
2.?發(fā)送請求
function sendRequest() {
var request = getRequestObject();
//???請求方式/請求的資源/是否異步
request.open("GET", "message-data.html", true);
//get請求send的參數(shù)為null,為啥?
request.send(null);
//服務器響應請求以后執(zhí)行的代碼
request.onreadystatechange =?function() {
handleResponse(request)
};
}
Post請求如何發(fā)送?
request.open("POST", url, true);
request.setRequestHeader("Content-Type","application/x-www-form-urlencoded");???//發(fā)送HTTP請求頭
request.send(data);??//例如傳入”a=6&b=8”,后臺可用request.getparameter(“a”)獲取
3.?響應處理
function handleResponse(request) {
// 4表示服務器成功完成響應(總共5種狀態(tài):0,1,2,3,4)
if (request.readyState == 4?&&?request.status==200) {
alert(request.responseText);??//responseXML
}
?}
JQ中的ajax函數(shù)應用
$.ajax({
?????// 請求路徑, string類型 , 默認為當前頁面
url?: ?"address",
// 請求方式(post或get)默認為get, 注意其他http請求方法,例如put和delete也可以使用,但僅部分瀏覽器支持
??????type?:?”GET”,
???//發(fā)送到服務器的數(shù)據(jù), 要求為Object或String類型的參數(shù)。如果已經(jīng)不是字符串,將自動轉換為字符串格式。get請求中將附加在url后。對象必須為key/value格式,例如{foo1:"bar1",foo2:"bar2"}轉換為foo1=bar1&foo2=bar2。如果是數(shù)組,JQuery將自動為不同值對應同一個名稱。例如{foo:["bar1","bar2"]}轉換為&foo=bar1&foo=bar2。
data?:??{ param1?: "Java", param2?: "PHP“ },
????//要求為String類型的參數(shù),預期服務器返回的數(shù)據(jù)類型。如果不指定,JQuery將自動根據(jù)http返回responseXML或responseText,并作為回調函數(shù)參數(shù)傳遞。可用的類型如下:???xml:返回XML文檔,可用JQuery處理。???html:返回純文本HTML信息。???script:返回純文本JavaScript代碼。???json:返回JSON數(shù)據(jù)。???jsonp:JSONP格式。使用SONP形式調用函數(shù)時,例如myurl?callback=?,JQuery將自動替換后一個“?”為正確的函數(shù)名,以執(zhí)行回調函數(shù)。???text:返回純文本字符串。
dataType?: "json",
???//要求為Function類型的參數(shù),請求成功后調用的回調函數(shù)???????? (1)由服務器返回,并根據(jù)dataType參數(shù)進行處理后的數(shù)據(jù)。???????? (2)描述狀態(tài)的字符串。???????? function(data){??????????? //data可能是xmlDoc、jsonObj、html、text等等???????? }
success?: successHandlerFunction,
error?: errorHandlerFunction,?
//要求為Boolean類型的參數(shù),默認為true,設置為false將不會從瀏覽器緩存中加載請求信息。
cache?: false,
})
$.getJSON(?“doFindPageObjects.do”,?{pageCurrent:1}?,?function(result)?{
//處理返回結果
})
$.post("doFindPageObjects.do",?{pageCurrent:1}?,?function(result)?{
??????//處理返回結果
})
ajax的優(yōu)點:
1、最大的優(yōu)點就是頁面無刷新,用戶的體驗非常好。
2、使用異步方式與服務器通信,具有更加迅速的響應能力。
3、可以把以前一些服務器負擔的工作轉嫁到客戶端,利用客戶端閑置的能力來處理,減輕服務器和帶寬的負擔,節(jié)約空間和寬帶租用成本。并且減輕服務器的負擔,ajax的原則是“按需取數(shù)據(jù)”,可以最大程度的減少冗余請求,和響應對服務器造成的負擔。
4、基于標準化的并被廣泛支持的技術,不需要下載插件或者小程序。
5、ajax可使因特網(wǎng)應用程序更小、更快,更友好。
ajax的缺點:
1、ajax不支持瀏覽器back按鈕。
2、安全問題 AJAX暴露了與服務器交互的細節(jié)。
3、對搜索引擎的支持比較弱。
4、破壞了程序的異常機制。
5、不容易調試。
總結
以上是生活随笔為你收集整理的ajax datatype_Ajax的基本使用的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 怎么更改sql的实例版本_学会复杂一点的
- 下一篇: yii3正式版什么时候发布_事业单位联考