這篇文章給大家分享的是有關原生和jQuery的ajax怎么用的內容。小編覺得挺實用的,因此分享給大家做個參考,一起跟隨小編過來看看吧。
創(chuàng)新互聯(lián)公司是一家專業(yè)提供平陽企業(yè)網(wǎng)站建設,專注與網(wǎng)站建設、成都做網(wǎng)站、H5網(wǎng)站設計、小程序制作等業(yè)務。10年已為平陽眾多企業(yè)、政府機構等服務。創(chuàng)新互聯(lián)專業(yè)網(wǎng)絡公司優(yōu)惠進行中。
Ajax簡介
Ajax被認為是(Asynchronous(異步) JavaScript And Xml的縮寫)?,F(xiàn)在,允許瀏覽器與服務器通信而無須刷新當前頁面的技術都被叫做Ajax.
同步是指:發(fā)送方發(fā)出數(shù)據(jù)后,等接收方發(fā)回響應以后才發(fā)下一個數(shù)據(jù)包的通訊方式。
異步是指:發(fā)送方發(fā)出數(shù)據(jù)后,不等接收方發(fā)回響應,接著發(fā)送下個數(shù)據(jù)包的通訊方式 。
AJAX的缺陷
AJAX大量使用了JavaScript和AJAX引擎,而這個取決于瀏覽器的支持。IE5.0及以上、Mozilla1.0、NetScape7及以上版本才支持,Mozilla雖然也支持AJAX,但是提供XMLHttpRequest的方式不一樣。所以,使用AJAX的程序必須測試針對各個瀏覽器的兼容性。
AJAX更新頁面內容的時候并沒有刷新整個頁面,因此,網(wǎng)頁的后退功能是失效的;有的用戶還經(jīng)常搞不清楚現(xiàn)在的數(shù)據(jù)是舊的還是已經(jīng)更新過的。這個就需要在明顯位置提醒用戶“數(shù)據(jù)已更新”。
對流媒體的支持沒有FLASH好。
一些手持設備(如手機、PDA等)現(xiàn)在還不能很好的支持Ajax。
form數(shù)據(jù)的序列化:
$('#submit').click(function(){ $('#form').serialize(); //會根據(jù)input里面的name,把數(shù)據(jù)序列化成字符串;eg:name=yang $('#form').serializeArray(); //會根據(jù)input里面的name,把數(shù)據(jù)序列化成數(shù)組;eg:[object] //注意:沒有name會獲取不到值 //下面兩種不是jQuery的方法 JSON.parse() //json字符串轉化為json對象 JSON.stringify() //json對象轉化為json字符串 });
jQuery的ajax方法:
$.ajax({ url:'/comm/test1.php', type:'POST', //GET async:true, //或false,是否異步 data:{ name:'yang',age:25 }, timeout:5000, //超時時間 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('錯誤') console.log(xhr) console.log(textStatus) }, complete:function(){ console.log('結束') } })
原生的ajax方法:
$('#send').click(function(){ //請求的5個階段,對應readyState的值 //0: 未初始化,send方法未調用; //1: 正在發(fā)送請求,send方法已調用; //2: 請求發(fā)送完畢,send方法執(zhí)行完畢; //3: 正在解析響應內容; //4: 響應內容解析完畢; var data = 'name=yang'; var xhr = new XMLHttpRequest(); //創(chuàng)建一個ajax對象 xhr.onreadystatechange = function(event){ //對ajax對象進行監(jiān)聽 if(xhr.readyState == 4){ //4表示解析完畢 if(xhr.status == 200){ //200為正常返回 console.log(xhr) } } }; xhr.open('POST','url',true); //建立連接,參數(shù)一:發(fā)送方式,二:請求地址,三:是否異步,true為異步 xhr.setRequestHeader('Content-type','application/x-www-form-urlencoded'); //可有可無 xhr.send(data); //發(fā)送 });
感謝各位的閱讀!關于“原生和jQuery的ajax怎么用”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,讓大家可以學到更多知識,如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!