国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Java > 正文

重走JAVA編程路,還是熟悉的那個(gè)入門道路-AJAX回顧

2019-11-06 07:39:55
字體:
供稿:網(wǎng)友

第四天 進(jìn)入Ajax學(xué)習(xí)

Ajax(Asynchronous javaScript and xml)使用腳本操縱HTTP的Web應(yīng)用架構(gòu)。

 

jQuery對(duì)Ajax的操作進(jìn)行了封裝。常用方法如下。

 

Load()方法

load()可以遠(yuǎn)程載入HTML并插入到DOM中。結(jié)構(gòu)為:

load(url [,data] [,callback])

· url(String):服務(wù)端資源的url。

· data(Obejct):發(fā)送到服務(wù)器的key/value數(shù)據(jù)

· callback(Function):請(qǐng)求完成時(shí)(無論成功或失敗)的回調(diào)函數(shù),在響應(yīng)數(shù)據(jù)已經(jīng)加載到包裝集元素之后被調(diào)用。傳入這個(gè)函數(shù)的參數(shù)是響應(yīng)文本、狀態(tài)碼、以及xhr實(shí)例。

get()方法

 

.get()使用GET進(jìn)行異步請(qǐng)求。服務(wù)器的狀態(tài)和應(yīng)用的模型數(shù)據(jù)不受GET操作的影響。無論進(jìn)行多少次GET操作,返回的結(jié)果是完全一致的。

$.get()結(jié)構(gòu)為:

$.get(url [, data] [, callback] [, type])

$.get()參數(shù)說明:

· url(String):請(qǐng)求的服務(wù)器端資源的url

· data(Object):以key/value的形式構(gòu)造查詢字符串追加到url

· callback(Function):在請(qǐng)求成功(success)時(shí)被調(diào)用。將請(qǐng)求結(jié)果和狀態(tài)傳遞給該方法。

· type(String):服務(wù)器端返回內(nèi)容的格式。

· GET請(qǐng)求會(huì)將參數(shù)跟在url后進(jìn)行傳遞,GET對(duì)傳輸?shù)臄?shù)據(jù)大小有限制(通常不大于2kb),GET方式請(qǐng)求的數(shù)據(jù)會(huì)被瀏覽器緩存,這種情況可能帶來安全問題。

post()方法

 

.post()發(fā)送到服務(wù)器的數(shù)據(jù)可以用來修改應(yīng)用的模型狀態(tài)。例如,可以添加或刪除信息。

· POST請(qǐng)求則作為HTTP消息的實(shí)體內(nèi)容發(fā)送給Web服務(wù)器,使用POST方式傳遞的數(shù)據(jù)量比GET大得多(理論上不受限制)

 

 

getScript()方法

 

$.getScript()用來加載.js文件,與加載一個(gè)HTML片段一樣,js文件會(huì)自動(dòng)執(zhí)行。

 

getJson()方法

getJSON()用于加載JSON文件,用法與getScript()相同。

 

$.ajax()方法

$.ajax()是jquery最底層的實(shí)現(xiàn)。

$.ajax(options)

這個(gè)方法只包含了1個(gè)參數(shù),這個(gè)參數(shù)里面包含了$.ajax()所需要的請(qǐng)求設(shè)置以及回調(diào)函數(shù),參數(shù)以key/value形式存在。

$.ajax()參數(shù)說明:

· url(String):發(fā)送請(qǐng)求地址。

· type(String):請(qǐng)求方式(POST或GET),默認(rèn)為GET。其他HTTP請(qǐng)求方法如PUT、DELETE,僅部分瀏覽器支持。

· data(Object或String):發(fā)送到服務(wù)器的數(shù)據(jù)。如果不是字符串,將自動(dòng)轉(zhuǎn)換為字符串格式。GET請(qǐng)求中將附加在url后。對(duì)象必須是key/value格式,例如{id:"xxyh", passWord:"123456"}轉(zhuǎn)換為&id=xxyh&password=123456。如果是數(shù)組,將自動(dòng)為不同值對(duì)應(yīng)同一個(gè)名稱。例如{name:["xxyh","dudu"]}轉(zhuǎn)換:&name=xxyh&name=dudu。

· dataType(String):預(yù)期服務(wù)器返回的數(shù)據(jù)類型。如果不指定,jquery將根據(jù)HTTP包MINE信息返回responseXML或responseText,并作為回調(diào)函數(shù)參數(shù)傳遞。可用類型: 

o xml:返回XML文檔,可用jquery處理

o html:返回純文本HTML信息,包含的script標(biāo)簽會(huì)插入DOM時(shí)執(zhí)行。

o script:返回純文本Javascript代碼。如果沒有設(shè)置cache參數(shù),不會(huì)自動(dòng)緩存結(jié)果。在遠(yuǎn)程請(qǐng)求時(shí)(不在同一個(gè)域下),所有POST請(qǐng)求都將轉(zhuǎn)為GET請(qǐng)求。

o json:返回JSON數(shù)據(jù)。

o jsonp:JSONP格式。使用JSONP形式調(diào)用函數(shù)時(shí),例如myurl?callback=?,jquery將自動(dòng)替換后一個(gè)“?”為正確的函數(shù)名,以執(zhí)行回調(diào)函數(shù)。

o text:返回純文本字符串。

complete(Function):請(qǐng)求完成后回調(diào)函數(shù)(請(qǐng)求成功或失敗后均調(diào)用)。

參數(shù):xmlhttpRequest對(duì)象和一個(gè)描述成功請(qǐng)求類型的字符串。

function(XMLHttPRequest,textStatus){    this;   // 調(diào)用本次Ajax請(qǐng)求時(shí)傳遞的options參數(shù)}

success(Function):請(qǐng)求成功回調(diào)函數(shù)。有2個(gè)參數(shù):

參數(shù):由服務(wù)器返回,并根據(jù)dataType參數(shù)進(jìn)行處理后的數(shù)據(jù)和描述狀態(tài)的字符串。

function(data, textStatus) {    // data 可能是xmlDoc,jsonObj,html,text等    this;   // 調(diào)用本次Ajax請(qǐng)求時(shí)傳遞的options參數(shù)}

error(Function):請(qǐng)求失敗時(shí)被調(diào)用的函數(shù)。這個(gè)函數(shù)有3個(gè)參數(shù),即XMLHttpRequest對(duì)象、錯(cuò)誤信息和捕獲的錯(cuò)誤對(duì)象

function(XMLHttpRequest, textStatus, errorThrown){    // 通常情況下textStatus和errorThrown只有一個(gè)包含信息    this;   // 調(diào)用本次Ajax請(qǐng)求時(shí)傳遞的options參數(shù)}

contentType(String):當(dāng)發(fā)送信息至服務(wù)器時(shí),內(nèi)容編碼類型默認(rèn)為"application/x-www-form-urlencoded"。

jsonp(String):在一個(gè)jsonp請(qǐng)求中重寫回調(diào)函數(shù)的名字。用來替代在“callback=?”這種GET或POST請(qǐng)求中URL參數(shù)里的“callback”部分,例如{jsonp:'onJsonPLoad'}會(huì)導(dǎo)致將“onJsonPLoad=?”傳給服務(wù)器。

 

AJAX代碼調(diào)用示例:

$.ajax()方式:(dataType:xml)

       $.ajax({    type:"get",    dataType:"xml",    url:"http://mp.toutiao.com/articles/?source_type=0",  //返回xml格式信息    beforeSend:function(xmlhttprequest){        $("img").show();    },    success:function(data,status){        $("div").html("");        $("item",data).each(function(i, domEle){            $("div").append("<li>"+$(domEle).children("title").text()+"</li>");        });    },    complete:function(){        $("img").hide();    },    error:function(xmlhttprequest,error){        alert(error);    }});

 

$.ajax()方式:(dataType:html)

 $.ajax({           type:"post",           url:"test.jsp",  //返回xml格式字符串,如:<ul><li>aa</li><li>bb</li></ul>           data:"index=3&name="+$("#name").val()+"&age="+$("#age").val()+"&sex="+$("input:radio:checked").val(),           dataType:"html",           timeout:50000,           beforeSend:function(xmlhttprequest){               $("div").html("<img id='imgid' src='http://127.0.0.1/imges/loading.gif' />");           },           success:function(xml,status){               $(xml).each(function(){                   $(this).children().each(function(){                       $("<li></li>").html($(this).text()).appendTo("div");                   });               });           },           error:function(xmlhttprequest,error){               alert(error);           },           complete:function(){               $("#imgid").hide();           }        });

 

$.ajax()方式:(dataType:script)

$.ajax({    type: "post",          url: "ajax.jsp",  //返回格式如:"var a = {name:'lidi',age:20};"        data: "index=5",          dataType: "script",    success:function(){        alert(a.name);    }});

 

$.ajax()方式:(dataType:json)

$.ajax({    type: "post",          url: "ajax.jsp",  //返回格式如:"{name:'lidi',age:20}"        data: "index=5",          dataType: "json",    success:function(data){        alert(data.name);    }});

 

 

 

 


發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 永登县| 荃湾区| 读书| 观塘区| 泗洪县| 新丰县| 观塘区| 芮城县| 大庆市| 加查县| 昔阳县| 长泰县| 临海市| 昆明市| 皋兰县| 阜宁县| 当雄县| 凤庆县| 沙坪坝区| 井研县| 涞源县| 湖南省| 同德县| 黄浦区| 象州县| 巴青县| 郴州市| 惠水县| 麻江县| 新竹县| 广德县| 曲周县| 佛冈县| 开平市| 西藏| 梁山县| 江北区| 仁化县| 阜宁县| 达拉特旗| 建瓯市|