最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

原生和jQuery的ajax用法詳解

 更新時(shí)間:2017年01月23日 08:46:26   投稿:mrr  
Ajax被認(rèn)為是(Asynchronous(異步) JavaScript And Xml的縮寫)?,F(xiàn)在,允許瀏覽器與服務(wù)器通信而無須刷新當(dāng)前頁(yè)面的技術(shù)都被叫做Ajax。這篇文章主要介紹了原生和jQuery的ajax用法,需要的朋友參考下吧

Ajax簡(jiǎn)介

Ajax被認(rèn)為是(Asynchronous(異步) JavaScript And Xml的縮寫)?,F(xiàn)在,允許瀏覽器與服務(wù)器通信而無須刷新當(dāng)前頁(yè)面的技術(shù)都被叫做Ajax.

同步是指:發(fā)送方發(fā)出數(shù)據(jù)后,等接收方發(fā)回響應(yīng)以后才發(fā)下一個(gè)數(shù)據(jù)包的通訊方式。 

異步是指:發(fā)送方發(fā)出數(shù)據(jù)后,不等接收方發(fā)回響應(yīng),接著發(fā)送下個(gè)數(shù)據(jù)包的通訊方式 。

AJAX的缺陷

AJAX大量使用了JavaScript和AJAX引擎,而這個(gè)取決于瀏覽器的支持。IE5.0及以上、Mozilla1.0、NetScape7及以上版本才支持,Mozilla雖然也支持AJAX,但是提供XMLHttpRequest的方式不一樣。所以,使用AJAX的程序必須測(cè)試針對(duì)各個(gè)瀏覽器的兼容性。

AJAX更新頁(yè)面內(nèi)容的時(shí)候并沒有刷新整個(gè)頁(yè)面,因此,網(wǎng)頁(yè)的后退功能是失效的;有的用戶還經(jīng)常搞不清楚現(xiàn)在的數(shù)據(jù)是舊的還是已經(jīng)更新過的。這個(gè)就需要在明顯位置提醒用戶“數(shù)據(jù)已更新”。

對(duì)流媒體的支持沒有FLASH好。

一些手持設(shè)備(如手機(jī)、PDA等)現(xiàn)在還不能很好的支持Ajax。

form數(shù)據(jù)的序列化:

 $('#submit').click(function(){
  $('#form').serialize();    //會(huì)根據(jù)input里面的name,把數(shù)據(jù)序列化成字符串;eg:name=yang
  $('#form').serializeArray();  //會(huì)根據(jù)input里面的name,把數(shù)據(jù)序列化成數(shù)組;eg:[object]
  //注意:沒有name會(huì)獲取不到值
  //下面兩種不是jQuery的方法
  JSON.parse()  //json字符串轉(zhuǎn)化為json對(duì)象
  JSON.stringify()  //json對(duì)象轉(zhuǎn)化為json字符串
});

jQuery的ajax方法:

$.ajax({
  url:'/comm/test1.php',
  type:'POST', //GET
  async:true,  //或false,是否異步
  data:{
    name:'yang',age:25
  },
  timeout:5000,  //超時(shí)時(shí)間
  dataType:'json',  //返回的數(shù)據(jù)格式:json/xml/html/script/jsonp/text
  beforeSend:function(xhr){
    console.log(xhr)
    console.log('發(fā)送前')
  },
  success:function(data,textStatus,jqXHR){
    console.log(data)
    console.log(textStatus)
    console.log(jqXHR)
  },
  error:function(xhr,textStatus){
    console.log('錯(cuò)誤')
    console.log(xhr)
    console.log(textStatus)
  },
  complete:function(){
    console.log('結(jié)束')
  }
})

原生的ajax方法:

$('#send').click(function(){
  //請(qǐng)求的5個(gè)階段,對(duì)應(yīng)readyState的值
    //0: 未初始化,send方法未調(diào)用;
    //1: 正在發(fā)送請(qǐng)求,send方法已調(diào)用;
    //2: 請(qǐng)求發(fā)送完畢,send方法執(zhí)行完畢;
    //3: 正在解析響應(yīng)內(nèi)容;
    //4: 響應(yīng)內(nèi)容解析完畢;
  var data = 'name=yang';
  var xhr = new XMLHttpRequest();    //創(chuàng)建一個(gè)ajax對(duì)象
  xhr.onreadystatechange = function(event){  //對(duì)ajax對(duì)象進(jìn)行監(jiān)聽
    if(xhr.readyState == 4){  //4表示解析完畢
      if(xhr.status == 200){  //200為正常返回
        console.log(xhr)
      }
    }
  };
  xhr.open('POST','url',true);  //建立連接,參數(shù)一:發(fā)送方式,二:請(qǐng)求地址,三:是否異步,true為異步
  xhr.setRequestHeader('Content-type','application/x-www-form-urlencoded');  //可有可無
  xhr.send(data);    //發(fā)送
});

相關(guān)文章

最新評(píng)論

贵港市| 朔州市| 同江市| 邯郸市| 北川| 峨山| 太康县| 宁远县| 安塞县| 家居| 庆安县| 龙陵县| 宕昌县| 靖边县| 宜兴市| 苍南县| 南陵县| 集安市| 鸡西市| 怀安县| 静海县| 加查县| 屯昌县| 涿鹿县| 西乡县| 习水县| 隆昌县| 常宁市| 民乐县| 香河县| 昭苏县| 广东省| 涿州市| 宜兰市| 随州市| 突泉县| 昌吉市| 当阳市| 鹿邑县| 宁河县| 信宜市|