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

輕松理解JavaScript之AJAX

 更新時間:2017年03月15日 14:23:21   作者:嶸么么  
本文主要介紹了JavaScript中的AJAX的相關(guān)知識,具有很好的參考價值,下面跟著小編一起來看下吧

摘要

AJAX技術(shù)是網(wǎng)頁構(gòu)建的必備技能之一,本文希望能幫助大家輕松的學(xué)習(xí)這項技術(shù)

一、什么是ajax?

ajax(異步j(luò)avascript xml) 能夠刷新局部網(wǎng)頁數(shù)據(jù)而不是重新加載整個網(wǎng)頁。

二、如何使用ajax?

第一步:創(chuàng)建xmlhttprequest對象

創(chuàng)建xmlhttprequest對象,XMLHttpRequest對象用來和服務(wù)器交換數(shù)據(jù)。

var xmlhttp =new XMLHttpRequest();

第二步:注冊回調(diào)函數(shù)

onreadystatechange函數(shù),當(dāng)服務(wù)器響應(yīng)請求并返回數(shù)據(jù)后,我們想要客戶端處理這些數(shù)據(jù)就需要使用onreadystatechange函數(shù),每次xmlhttprequest對象的readyState發(fā)生改變都會觸發(fā)onreadystatechange函數(shù)。對于readyState會在下一章節(jié)詳細(xì)介紹。

 xmlHttp.onreadystatechange= callback;
  function callback(){}

第三步:配置和發(fā)送請求

使用xmlhttprequest對象的open()和send()方法配置和發(fā)送資源請求給服務(wù)器。

xmlhttp.open(method,url,async) method包括get 和post,url主要是文件或資源的路徑,async參數(shù)為true(代表異步)或者false(代表同步)

xmlhttp.send();使用get方法發(fā)送請求到服務(wù)器。

xmlhttp.send(string);使用post方法發(fā)送請求到服務(wù)器。

post表單數(shù)據(jù)需要使用xmlhttprequest對象的setRequestHeader方法增加一個HTTP頭。

post 發(fā)送請求什么時候能夠使用呢?

(1)更新一個文件或者數(shù)據(jù)庫的時候。

(2)發(fā)送大量數(shù)據(jù)到服務(wù)器,因為post請求沒有字符限制。

(3)發(fā)送用戶輸入的加密數(shù)據(jù)。

xhttp.open("POST", "ajax_test.aspx", true);
xhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
xhttp.send("fname=Henry&lname=Ford");

第四步:處理響應(yīng)數(shù)據(jù)

使用xmlhttprequest對象的responseText或responseXML屬性獲得服務(wù)器的響應(yīng)。

使用responseText屬性得到服務(wù)器響應(yīng)的字符串?dāng)?shù)據(jù),使用responseXML屬性得到服務(wù)器響應(yīng)的XML數(shù)據(jù)。

在回調(diào)函數(shù)中使用readyState==4和status==200判斷交互是否結(jié)束,響應(yīng)是否正確,并根據(jù)需要獲取服務(wù)器端返回的數(shù)據(jù),更新頁面內(nèi)容。

function callback(){
  if(xmlHttp.readyState == 4){
   //判斷交互是否成功
   if(xmlHttp.status == 200){
    //獲取服務(wù)器返回的數(shù)據(jù)
    //獲取純文本數(shù)據(jù)
    var responseText =xmlHttp.responseText;
    document.getElementById("info").innerHTML = responseText;
   }
  }
}

三、AJAX運行過程中5種狀態(tài)(readyState)

在AJAX實際運行當(dāng)中,對于訪問XMLHttpRequest(XHR)時并不是一次完成的,而是分別經(jīng)歷了多種狀態(tài)后取得的結(jié)果,對于這種狀態(tài)在AJAX中共有5種,這五種狀態(tài)是由AJAX引擎切換設(shè)置的,分別是。

0 : 定義了XHR,但還未初始化

1 :調(diào)用send()方法,正在發(fā)送請求,請求發(fā)送完畢后,開始等待接收響應(yīng)

2 :響應(yīng)接收完成

3 :正在解析響應(yīng)內(nèi)容

4 :響應(yīng)內(nèi)容解析完成,返回給客戶端調(diào)用

對于上面的狀態(tài),其中“0”狀態(tài)是在定義后自動具有的狀態(tài)值,而對于成功訪問的狀態(tài)(得到信息)我們大多數(shù)采用“4”進(jìn)行判斷。

值得注意的是,狀態(tài)每切換一次,都會觸發(fā)onreadystatechange 事件,所以整個過程onreadystatechange 事件被觸發(fā)5次

四、AJAX的優(yōu)缺點

優(yōu)點

1、最大的一點是頁面無刷新,在頁面內(nèi)與服務(wù)器通信,不需要打斷用戶的操作,具有更加迅速的響應(yīng)能力給用戶的體驗非常好。

2、減輕服務(wù)器的負(fù)擔(dān),ajax的原則是“按需取數(shù)據(jù)”,可以最大程度的減少冗余請求,和響應(yīng)對服務(wù)器造成的負(fù)擔(dān)。

缺點

1、ajax干掉了back按鈕,即對瀏覽器后退機制的破壞。

2、對搜索引擎的支持比較弱。

 以上就是本文的全部內(nèi)容,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作能帶來一定的幫助,同時也希望多多支持腳本之家!

相關(guān)文章

  • javascript實現(xiàn)微信分享

    javascript實現(xiàn)微信分享

    這篇文章主要介紹了javascript實現(xiàn)微信分享,非常的實用,小伙伴們參考下吧
    2014-12-12
  • js實現(xiàn)本地持久化存儲登錄注冊

    js實現(xiàn)本地持久化存儲登錄注冊

    這篇文章主要為大家詳細(xì)介紹了js實現(xiàn)本地持久化存儲登錄注冊,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-08-08
  • 關(guān)于JavaScript 的事件綜合分析

    關(guān)于JavaScript 的事件綜合分析

    js下比較常用的方法,事件函數(shù)代碼。
    2010-08-08
  • three.js實現(xiàn)圓柱體

    three.js實現(xiàn)圓柱體

    這篇文章主要為大家詳細(xì)介紹了three.js實現(xiàn)圓柱體的相關(guān)代碼,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-12-12
  • JS實現(xiàn)從頂部下拉顯示的帶動畫QQ客服特效代碼

    JS實現(xiàn)從頂部下拉顯示的帶動畫QQ客服特效代碼

    這篇文章主要介紹了JS實現(xiàn)從頂部下拉顯示的帶動畫QQ客服特效代碼,可實現(xiàn)彈性緩沖效果的彈出QQ客服窗口的功能,具有一定參考借鑒價值,需要的朋友可以參考下
    2015-10-10
  • 全面了解addEventListener和on的區(qū)別

    全面了解addEventListener和on的區(qū)別

    下面小編就為大家?guī)硪黄媪私鈇ddEventListener和on的區(qū)別。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2016-07-07
  • JS中用try catch對代碼運行的性能影響分析

    JS中用try catch對代碼運行的性能影響分析

    要捕獲JavaScript代碼中的異常一般會采用 try catch,不過try catch的使用是否是對代碼性能產(chǎn)生影響呢?答案是肯定有的,但是有多少不得而知。下面這篇文章就給大家詳細(xì)介紹了在JS中用try catch對代碼運行的性能影響,有需要的朋友們可以參考借鑒。
    2016-12-12
  • 多附件上傳組件演示

    多附件上傳組件演示

    多附件上傳組件演示...
    2006-09-09
  • replace()方法查找字符使用示例

    replace()方法查找字符使用示例

    查找字符的情況下會使用replace()方法,此方法很常見也很實用,下面有個不錯的示例,感興趣的朋友可以參考下,希望對大家有所把幫助
    2013-10-10
  • nuxt配置通過指定IP和端口訪問的實現(xiàn)

    nuxt配置通過指定IP和端口訪問的實現(xiàn)

    這篇文章主要介紹了nuxt配置通過指定IP和端口訪問的實現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-01-01

最新評論

青冈县| 临朐县| 鄂伦春自治旗| 霍林郭勒市| 阳朔县| 新密市| 鄂尔多斯市| 凤台县| 徐水县| 高台县| 开阳县| 分宜县| 博野县| 吉木乃县| 夹江县| 娄烦县| 溧水县| 壤塘县| 江达县| 秦安县| 伊宁县| 额济纳旗| 稻城县| 沿河| 盘锦市| 庐江县| 西盟| 丰原市| 沅江市| 新沂市| 绍兴市| 兴仁县| 潮安县| 兖州市| 东辽县| 文安县| 西昌市| 岳西县| 秦皇岛市| 永福县| 赫章县|