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

首頁(yè) > 開發(fā) > AJAX > 正文

jQuery Ajax()方法使用指南

2024-09-01 08:32:55
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友
jQuery.ajax()功能比較強(qiáng)大,可配置的參數(shù)比較多,本文主要對(duì)這個(gè)方法的注意事項(xiàng)進(jìn)行總結(jié)。有相同需求的童鞋們也來(lái)仔細(xì)看看吧,希望對(duì)大家能有所幫助
 
 

 jQuery提供了簡(jiǎn)單而強(qiáng)大的選擇器功能,同時(shí)對(duì)Ajax操作也給出了很好的支持。在Ajax方面,jQuery除了提供底層的jQuery.ajax()方法外,也提供了下面的簡(jiǎn)單方法:

(1)       jQuery.get(url, [data], [callback], [type])

(2)       jQuery.getJSON(url, [data], [callback])

(3)       jQuery.getScript(url, [callback])

(4)       jQuery.post(url, [data], [callback], [type])

由于jQuery.ajax()功能比較強(qiáng)大,可配置的參數(shù)比較多,現(xiàn)在主要對(duì)這個(gè)方法的注意事項(xiàng)進(jìn)行總結(jié)。

1.       jQuery.ajax()默認(rèn)是以異步的方式請(qǐng)求的,如果需要同步,使用參數(shù)async為false。因?yàn)橛行?yīng)用必須同步請(qǐng)求數(shù)據(jù)的。例如,某些Flash與JS交互應(yīng)用中,請(qǐng)求一個(gè)JS函數(shù)需要馬上得到返回?cái)?shù)據(jù)。此時(shí),必須采用同步的Ajax調(diào)用方式。

2.       Ajax如果是Get請(qǐng)求,返回的數(shù)據(jù)一般會(huì)被瀏覽器緩存,如果不想被緩存,可以設(shè)置cache參數(shù)為false;或者發(fā)送請(qǐng)求是帶上時(shí)間戳,這樣瀏覽器會(huì)認(rèn)為是新的請(qǐng)求,而重新從服務(wù)器加載數(shù)據(jù)。當(dāng)然,如果是POST發(fā)送的請(qǐng)求則不會(huì)被緩存。

3.       dataType:預(yù)期服務(wù)器返回的數(shù)據(jù)類型。如果不指定,jQuery 將自動(dòng)根據(jù) HTTP 包 MIME 信息返回 responseXML 或 responseText,并作為回調(diào)函數(shù)參數(shù)傳遞,可用值:

(1)"xml": 返回 XML 文檔,可用 jQuery 處理。

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

(3)"script": 返回純文本 JavaScript 代碼。不會(huì)自動(dòng)緩存結(jié)果。除非設(shè)置了"cache"參數(shù)。'''注意:'''在遠(yuǎn)程請(qǐng)求時(shí)(不在同一個(gè)域下),所有POST請(qǐng)求都將轉(zhuǎn)為GET請(qǐng)求。(因?yàn)閷⑹褂肈OM的script標(biāo)簽來(lái)加載)

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

(5)"jsonp": JSONP 格式。使用 JSONP 形式調(diào)用函數(shù)時(shí),如 "myurl?callback=?" jQuery 將自動(dòng)替換 ? 為正確的函數(shù)名,以執(zhí)行回調(diào)函數(shù)。

(6)"text": 返回純文本字符串

         其中,"script"、"json"設(shè)置可以解決Ajax的跨域問題。

4.       如果服務(wù)器返回的一個(gè)字符串或數(shù)值,則使用普通的ajax調(diào)用即可。

如果服務(wù)器返回的是一個(gè)JSON對(duì)象,那么最好采用jQuery.getJSON的方式,或者設(shè)置dataType=json。因?yàn)闉g覽器解析JSON對(duì)象需要時(shí)間,直接返回JSON對(duì)象,節(jié)省解析時(shí)間,可以避免在服務(wù)器明明有返回?cái)?shù)據(jù),但是瀏覽器得不到的錯(cuò)誤。

5. Ajax調(diào)用是需要時(shí)間的,所以一般將Ajax調(diào)用后的處理代碼全部放在回調(diào)方法中。不能采用這樣的處理方式:

 

復(fù)制代碼代碼如下:

function getMyPrizeList(){
    if(isNotEmpty(uid)){
        var obj=new Object();
        try{
          jQuery.ajax({type:"GET",url:"someurl",async:false,cache:false,dataType:"script",scriptCharset:"gbk",success:function(json){
                     obj=json;
                  }
              });
           }catch(e){}
           obj=eval("("+obj+")");
           //alert(obj);
           var str="";
           for(var i in obj)
           {
               str+='<tr>'+'<th>'+prizearray[obj[i].prizeno]+'</th>'
               str+='<td>'+'CD-KEY:'+obj[i].cdkey+'</td>'
               str+='<td>'+'期限:'+obj[i].expiratedate+'前'+'</td></tr>';
           }
           jQuery("#prizelist").append(str);
        }
}

 

而必須這樣處理:即將處理代碼放到success函數(shù)里面!

 

復(fù)制代碼代碼如下:

function getMyPrizeList(){
    if(isNotEmpty(uid)){
        var obj=new Array();
        try{
                  jQuery.ajax({type:"GET",url:"someurl",
                               cache:false,
                               dataType:"script",
                               scriptCharset:"gbk",
                               success:function(json){
                                 try{
                                      obj=result;  
                                }catch(e){}
                                jQuery("#prizelist").html("");
                                var str="";
                                for(var i=0;i<obj.length;i++ ){
                                    str+='<tr><th>'+prizearray[obj[i].prizeno]+'</th>';
                                    str+='<td>CD-KEY:'+obj[i].cdkey+'</td>';
                                    str+='<td>期限:'+obj[i].expiratedate+'前</td></tr>';
                                }
                                jQuery("#prizelist").append(str);                   
                               }
                   });
           }catch(e){}
        }
}

 

6. jQuery.getJSON實(shí)例:

 

復(fù)制代碼代碼如下:

//內(nèi)部函數(shù),實(shí)現(xiàn)債務(wù)人詳細(xì)信息的載入、設(shè)置值
    function innerShowDetail() {
       // 獲得JSON格式的數(shù)據(jù)
       $.getJSON('load.do',{id : userId}, function(json) {
           // 根據(jù)key設(shè)置value
           for (key in json) {
              if(key == 'id'){
                  $('#detailDiv #' + key).val(json[key]);
              } else {
                  if(json[key] == ''){
                     // 沒有值設(shè)置為空
                     $('#detailDiv #' + key).html(' ');
                  } else if(key == 'sex'){
                     $('#detailDiv #' + key).html(json[key] == '0' ? '女' : '男');
                  } else if(key == 'group'){
                     if(json[key] != null) {
                         $('#detailDiv #' + key).html(json[key]['groupName']);
                     }
                  } else {
                     $('#detailDiv #' + key).html(json[key]);
                  }
              }
           }
           //設(shè)置對(duì)話框標(biāo)題和內(nèi)容
           $('#detailDiv').removeAttr('class');
           dialog.setTitle('查看人員[' + json['userName'] + ']詳細(xì)資料');
           dialog.setContent($('#detailDiv').html());
       });
    }
 

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 瓮安县| 依安县| 连南| 北辰区| 常熟市| 闵行区| 舒兰市| 湾仔区| 丹巴县| 沂水县| 交口县| 东乡族自治县| 海门市| 永川市| 嘉义市| 古田县| 琼海市| 合川市| 佛山市| 贺州市| 理塘县| 柏乡县| 定州市| 绥阳县| 鄢陵县| 义乌市| 鸡西市| 聂拉木县| 离岛区| 新田县| 余干县| 什邡市| 北安市| 民乐县| 青阳县| 宜都市| 正宁县| 玛曲县| 长沙县| 商水县| 鹿邑县|