亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

輕松理解JavaScript之AJAX

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

摘要

AJAX技術是網(wǎng)頁構建的必備技能之一,本文希望能幫助大家輕松的學習這項技術

一、什么是ajax?

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

二、如何使用ajax?

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

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

var xmlhttp =new XMLHttpRequest();

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

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

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

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

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

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

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

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

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

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

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

(2)發(fā)送大量數(shù)據(jù)到服務器,因為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");

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

使用xmlhttprequest對象的responseText或responseXML屬性獲得服務器的響應。

使用responseText屬性得到服務器響應的字符串數(shù)據(jù),使用responseXML屬性得到服務器響應的XML數(shù)據(jù)。

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

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

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

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

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

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

2 :響應接收完成

3 :正在解析響應內容

4 :響應內容解析完成,返回給客戶端調用

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

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

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

優(yōu)點

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

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

缺點

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

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

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

相關文章

  • js之事件冒泡和事件捕獲詳細介紹

    js之事件冒泡和事件捕獲詳細介紹

    事件——怎樣使用事件以及IE和DOM事件模型之間存在哪些主要差別,有需要的朋友可以參考一下
    2013-10-10
  • javascript面向對象程序設計(一)

    javascript面向對象程序設計(一)

    這篇文章主要介紹了javascript面向對象程序設計,分享給大家一段代碼,注釋里講解的非常詳細,有助于我們理解面向對象,這里推薦給大家。
    2015-01-01
  • JS下拉框內容左右移動效果的具體實現(xiàn)

    JS下拉框內容左右移動效果的具體實現(xiàn)

    這篇文章介紹了JS下拉框內容左右移動效果的具體實現(xiàn)方法,有需要的朋友可以參考一下
    2013-07-07
  • js實現(xiàn)多圖左右切換功能

    js實現(xiàn)多圖左右切換功能

    這篇文章主要介紹了js實現(xiàn)多圖左右切換功能,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2016-08-08
  • JavaScript 閉包的使用場景

    JavaScript 閉包的使用場景

    這篇文章主要介紹了JavaScript 閉包的使用場景,幫助大家更好的理解和使用JavaScript,感興趣的朋友可以了解下
    2020-09-09
  • js下寫一個事件隊列操作函數(shù)

    js下寫一個事件隊列操作函數(shù)

    異步操作可能會產生你不希望的事件觸發(fā)順序。這個問題以前也遇到過,當時沒想太多,也就是直接多層嵌套(在ajax返回以后嵌套下一個事件)來解決。
    2010-07-07
  • Java遍歷集合方法分析(實現(xiàn)原理、算法性能、適用場合)

    Java遍歷集合方法分析(實現(xiàn)原理、算法性能、適用場合)

    這篇文章主要介紹了Java遍歷集合方法分析(實現(xiàn)原理、算法性能、適用場合)的相關資料,需要的朋友可以參考下
    2016-04-04
  • 全面了解JavaScript的作用域鏈

    全面了解JavaScript的作用域鏈

    這是一個非常重要的知識點了,了解了JavaScript的作用域鏈的話,能幫助我們理解很多‘異?!瘑栴}。文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-04-04
  • Javascript基礎學習之十個重要問題

    Javascript基礎學習之十個重要問題

    本文特別適合正在尋找Javascript開發(fā)工作的初學者。再搜索了許多Javascript面試問題后,發(fā)現(xiàn)這10個知識點很重要。讓我們一起深入研究一下
    2021-12-12
  • JS操作對象數(shù)組實現(xiàn)增刪改查實例代碼

    JS操作對象數(shù)組實現(xiàn)增刪改查實例代碼

    JS提供了很多方便操作數(shù)組的方法,這篇文章主要給大家介紹了關于JS操作對象數(shù)組實現(xiàn)增刪改查的相關資料,文中通過示例代碼介紹的非常詳細,需要的朋友可以參考下
    2021-07-07

最新評論