1. 程式人生 > >ajax的基本概念及其使用(5步)

ajax的基本概念及其使用(5步)

同步&非同步

先上概念

  • 同步:必須等待前面的任務完成,才能繼續後面的任務

  • 非同步:不受當前任務的影響

  • 舉個例子:

  • 同步:我們在銀行排隊時,只有等到你了,才能夠去處理業務. 

  • 非同步:我們在排隊的時候,玩手機是沒有任何影響的.

  • 非同步更新網站

    當我們訪問一個普通的網站時,當瀏覽器載入完:HTML,CSS,JS以後網站的內容就固定了.如果網站內容發生更改必須重新整理頁面才能夠看到更新的內容

    • 網站內容更新:

    常規的網站內容更新,必須通過重新整理顯示新內容

    • 想像一下

    你正用手機看著微博

    手機網速很慢

    內容看完了,點選載入更多按鈕

    頁面重新重新整理 o(╯□╰)o

    • 非同步更新

    實際情況是:我們在訪問新浪微博時,當你看到一大半了,會自動幫我們載入更多的微博,同時頁面並沒有重新整理

    Ajax概念

    當我們正在排隊的時候,可以通過手機去幹一些其他的事情.

    在瀏覽器中,我們也能夠不重新整理頁面,通過ajax的方式去獲取一些新的內容,類似網頁有微博,朋友圈,郵箱

    • 單詞解釋:

    Asynchronous Javascript And XML(非同步JavaScript和XML),他並不是憑空出現的新技術,而是對於現有技術的結合:核心是js物件XMLHttpRequest

    XMLHttpRequest

    ajax使用的依舊是HTTP請求,那麼讓我們來回憶一下一個完整的HTTP請求

    需要什麼

    >

    • 請求的網址,方法get/post

    • 提交請求內容資料,請求主體

    • 接收響應回來的內容

    • 五步使用法:

      1. 建立XMLHTTPRequest物件

      2. 註冊回撥函式

        • 當伺服器迴應我們了,我們想要執行什麼邏輯
      3. 使用open方法設定和伺服器端互動的基本資訊

        • 設定提交的網址,資料,post提交的一些額外內容
      4. 設定傳送的資料,開始和伺服器端互動

        • 傳送資料
      5. 更新介面

        • 在註冊的回撥函式中,獲取返回的資料,更新介面
    • 示例程式碼:GET

    get的資料,直接在請求的url中新增即可

    
    <script type="text/javascript">
    
        // 建立XMLHttpRequest 物件
    var xml = new XMLHttpRequest(); // 設定跟服務端互動的資訊 xml.open('get','01.ajax.php?name=fox'); xml.send(null); // get請求這裡寫null即可 // 接收伺服器反饋 xhr.onreadystatechange = function () { // 這步為判斷伺服器是否正確響應 if (xhr.readyState == 4 && xhr.status == 200) { // 列印響應內容 alert(xml.responseText); } }; </script>
    • 示例程式碼:POST
    
    <script type="text/javascript">
    
        // 非同步物件
    
        var xhr = new XMLHttpRequest();
    
    
    
        // 設定屬性
    
        xhr.open('post', '02.post.php' );
    
    
    
        // 如果想要使用post提交資料,必須新增
    
        xhr.setRequestHeader("Content-type","application/x-www-form-urlencoded");
    
    
    
        // 將資料通過send方法傳遞
    
        xhr.send('name=fox&age=18');
    
    
    
        // 傳送並接受返回值
    
        xhr.onreadystatechange = function () {
    
        // 這步為判斷伺服器是否正確響應
    
        if (xhr.readyState == 4 && xhr.status == 200) {
    
               alert(xhr.responseText);
    
             } 
    
        };
    
    </script>
    

    XMLHttpRequest_API講解

    1.建立XMLHttpRequest物件(相容性寫法)

    • 新版本瀏覽器:
    
    var xml=new XMLHttpRequest();
    
    • (IE5 和 IE6)
    
    var xml=new ActiveXObject("Microsoft.XMLHTTP");
    
    • 考慮相容性建立Ajax物件
    
     var request ;
    
     if(XMLHttpRequest){
    
        // 新式瀏覽器寫法
    
        request = new XMLHttpRequest();
    
     }else{
    
        //IE5,IE6寫法
    
        new ActiveXObject("Microsoft.XMLHTTP");
    
     }
    

    2.傳送請求:

    方法 描述
    open(method,url,async)

    規定請求的型別、URL 以及是否非同步處理請求。

    • method:請求的型別;GET 或 POST
    • url:檔案在伺服器上的位置
    • async:true(非同步)或 false(同步)
    send(string)

    將請求傳送到伺服器。

    • string:僅用於 POST 請求

    3.POST請求注意點:

    如果想要像form表單提交資料那樣使用POST請求,需要使用XMLHttpRequest物件的setRequestHeader()方法 來新增 HTTP 頭。然後在 send() 方法中新增想要傳送的資料:

    
    xmlhttp.open("POST","ajax_test.php",true);
    
    xmlhttp.setRequestHeader("Content-type","application/x-www-form-urlencoded");
    
    xmlhttp.send("fname=Bill&lname=Gates");
    

    4.onreadystatechange事件

    當伺服器給予我們反饋時,我們需要實現一些邏輯

    屬性 描述
    onreadystatechange 儲存函式(或函式名),每當 readyState 屬性改變時,就會呼叫該函式。
    readyState

    存有 XMLHttpRequest 的狀態。從 0 到 4 發生變化。

    • 0: 請求未初始化
    • 1: 伺服器連線已建立
    • 2: 請求已接收
    • 3: 請求處理中
    • 4: 請求已完成,且響應已就緒
    status

    200: "OK"

    404: 未找到頁面

    4.伺服器響應內容

    如果響應的是普通字串,使用responseText,如果響應的是XML,使用responseXML

    屬性 描述
    responseText 獲得字串形式的響應資料。
    responseXML 獲得 XML 形式的響應資料。

相關推薦

ajax基本概念及其使用(5)

同步&非同步 先上概念 同步:必須等待前面的任務完成,才能繼續後面的任務 非同步:不受當前任務的影響 舉個例子: 同步:我們在銀行排隊時,只有等到你了,才能夠去處理業務.  非同

ajax基本概念及其使用

XMLHttpRequest ajax使用的依舊是HTTP請求,那麼讓我們來回憶一下一個完整的HTTP請求需要什麼 請求的網址,方法get/post 提交請求內容資料,請求主體等 接收響應回來的內容 五步使用法: 建立XMLHTTPRequ

Spring的基本概念及其核心

等等 template 應用 ejb 依賴註入 org 維護 基本 消息 一、Spring是什麽 Spring是一種多層的J2EE應用程序框架,其核心就是提供一種新的機制管理業務對象及其依賴關系。 二、為什麽要使用Spring 1. 降低組件

推薦系統的基本概念及其在各個領域的應用

目的 body area 聲音 文章 幫助 們的 當前 電影 初學推薦系統相關內容,寫寫自己讀《推薦系統實踐》的讀書筆記。 推薦系統: 對用戶來說推薦系統幫助用戶發現自己想要的商品,對於商品來說找到對其感興趣的用戶,前者例如電影,歌曲的推薦,後者例如廣告推送。 產生推薦系統

Ajax基本概念

紅色 服務器端 request json info 技術 概念 pos 中文 一. Ajax 1. 什麽是ajax Ajax: asynchronous javascript and xml (異步js和xml) 其是可以與服務器進行(異步/同步)交互的技術一。 aj

例項詳解js閉包(一)閉包基本概念及其作用推導

  在學習前端的過程中,不可避免的要學習到js閉包這個知識點,很多朋友感到對閉包很難理解,也不清楚它有什麼用。本文就詳細介紹一下閉包,並通過幾個小例子來說明下閉包的用處。  一、閉包的概念       閉包的英文單詞是Closure,我先給閉包可

基本資料結構――堆的基本概念及其操作

     轉載自:https://www.cnblogs.com/JVxie/p/4859889.html,同時感謝大佬的分析       在我剛聽到堆這個名詞的時候,我認為它是一堆東西的集合       但其實吧它是利用

《C語言程式設計:現代方法(第2版)(K.N.King 著)》學習筆記六:C語言基本概念5

問與答 GCC 最初是 GNU C Compiler 的簡稱。現在指 GNU Compiler Collection,這是因為最新版本的 GCC 能夠編譯用 Ada、C、C++、Fortran、Ja

統計自然語言處理概率論和資訊理論基本概念及其推導過程

最近看《統計自然語言處理》,遇到不少公式,在此做一下筆記,寫下一些關鍵知識點和關鍵公式的推導過程。下面是書中第二章的主要內容。 2.1 概率論基本概念 2.1.1 概率 概率的三個公理 (1) 非負性: P(A)≥0 (2) 規範性: P(

反向Ajax基本概念

反向AJax嚴格來講稱之為資料的輪詢技術,其主要重要的使用點在於:聊天室,站內的訊息提示資訊,反向Ajax有一個最為嚴重的問題,那麼就是他的效能消耗非常的大. 對於反向AJax支援的多執行緒的處理操作,並不是說使用者直接使用多執行緒的實現即可,以為次執行緒物件

基本資料結構——堆(Heap)的基本概念及其操作

1 #include<cstdio> 2 #include<cstring> 3 #include<iostream> 4 #include<algorithm> 5 #define maxn 100010 //這部分可以自己定義堆記憶

OpenStack Keystone (1) : 基本概念及其組織結構關係與案例分析

Keystone是OpenStack中的身份驗證服務,同時它也同Nova, Cinder, Glance,Neutron一樣是OpenStack的核心元件。Keystone為其他元件提供統一的身份驗證以及服務授權。Keystone的API目前有v2.0和v3.0兩個版本,官方

Zookeeper入門:基本概念5項配置、啟動

起源   最早接觸Zookeeper,是在學習Hadoop權威指南這本書的時候,印象中是Hadoop專案的一個子工程。      最近,專案中需要用到“分散式鎖”。      之前,在開發P2P網貸系統的時候,就用到了“分散式鎖”,這個概念聽起來挺高階的,實際就是多臺機器下,

Java基本功練習十七GUI(圖形使用者介面基礎【基本概念及其使用、三種佈局管理器實現同樣的框架練習】)

為Java GUI程式設計而設計的API是應用面向物件原理的絕佳範例。 本博文主要講解 第一,介紹Java GUI程式設計的基礎知識。 第二,它使用GUI演示面向物件程式設計。 尤其是將介紹Java GUI API的框架結構,討論GUI元件及元件之間的相互關係、容器和佈局管

堆的基本概念及其操作

怎麽 iostream .com 基本介紹 define top break 不難 概念 轉:https://www.cnblogs.com/JVxie/p/4859889.html 堆是利用完全二叉樹的結構來維護一組數據,然後進行相關操作,一般的操作進行一次的

學習ASP.NET 5 (一)-基本概念和環境配置

       編者語:時代在變,在csdn開博一年就發了那麼的兩篇文章,無論是什麼原因都覺得有愧了。但是今年重心都會在這裡發表一些文章,和大家談談.NET, 移動跨平臺,雲端計算等熱門話題。希望有更好

promise 的基本概念 和如何解決js中的異編程問題 對 promis 的 then all ctch 的分析 和 await async 的理解

委托 callback 分析 傳參 成功 visible 定時 data- 得到 * promise承諾 * 解決js中異步編程的問題 * * 異步-同步 * 阻塞-無阻塞 * * 同步和異步的區別?

python面向對象編程 -- 基本概念(python3.5

模塊 屬性和方法 class example 擴展 clas 3.5 通過 val 面向對象的編程簡要概括就是將要處理的問題抽象為數據和操作的集合,用類對其進行封裝。其中數據和操作都稱為類的屬性,它們是一般是不變的。 對類進行實例化生成我們所說的對象,對象有自己的屬性。對

基本概念_同步、異有什麽區別

服務器 根據 http 輪詢 tro 服務 協作 客戶 一次 1、同步、異步有什麽區別 在進行網絡編程時,我們通常會看到同步、異步、阻塞、非阻塞四種調用方式以及他們的組合。 其中同步方式、異步方式主要是由客戶端(client)控制的,具體如下: 同步(Sync) 所謂同步,

數據庫設計理論與實踐·<四>數據庫基本術語及其概念

primary 數據模型 大學生 其中 關系模型 ttr 必須 domain 關系 一、關系模型   關系模型是最重要的一種數據模型。關系數據庫模型系統采用關系模型作為數據的組織方式。   關系模型的數據結構:   關系:一張表   元組:一行記錄。   屬性:一列   碼