1. 程式人生 > >關於Agax的get與post淺分析,同步請求與非同步請求;

關於Agax的get與post淺分析,同步請求與非同步請求;

Agax區域性非同步重新整理全稱ASynchronous JavaScript And XML.使用Javascript程式碼獲取伺服器的資料,Ajax當中有兩個請求方法,一個是get方法,一個是post請求方法。

  ①get請求方法:請求引數在URL的後面,多個引數之間用&連線。

  ②post請求方法:請求參在請求體當中。

  ③同步請求:介面全部卡頓,卡頓時間由網路速度決定。如採用同步請求則xhr.onreadystatechange的回撥函式不被執行,需要修改程式碼後才能夠獲取資料 ,將回調函式去掉即可。方法如下:

    xhr.onreadystatechange=function(){

      if(xhr.readystate == 4){

        if(xhr.states == 200){

        }

      }

    }//這是採用非同步重新整理的程式碼

    如採用同步重新整理只需將xhr.onreadystatechange的回撥函式去掉即可:

      if(xhr.readystate == 4){

        if(xhr.states == 200){

        }

      }

  非同步的底層原理:JavaScript程式碼是單執行緒的,程式碼從上向下執行,一行一行執行。

  事件佇列:JavaScript空閒的時候會去事件佇列裡面看看有沒有方法或者回調函式已經達到了觸發條件,因為JavaScript是單執行緒的,一次只能做一件事。

  setTimeout(function(){

    console.log("我會被排在事件佇列中去");

  },0)

  console.log("我是從上到下執行,不用等待");

  上面程式碼列印順序是先列印不用等待的,再列印在事件佇列中的。雖然setTimeout的延遲時間是0但是事件佇列中的方法與回撥函式是等到其他不需要排隊的函式執行完後再來執行達到條件的。