国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

原生JS與jQuery對AJAX的實現(xiàn)

Chaz / 3110人閱讀

摘要:原生與對的實現(xiàn)一定義里這么解釋異步的和。二原生實現(xiàn)所有現(xiàn)代瀏覽器以及均內(nèi)建對象。一般是正常未找到頁面,一般是錯誤,或者后臺沒有創(chuàng)建相應(yīng)的內(nèi)部服務(wù)錯誤,多為后臺錯誤。基本上通過發(fā)送的數(shù)據(jù)及傳回的數(shù)據(jù)就能定位問題所在了。

原生JS與jQuery對AJAX的實現(xiàn) 一、定義

W3C里這么解釋AJAX:

AJAX = Asynchronous JavaScript and XML(異步的 JavaScript 和 XML)。

AJAX 不是新的編程語言,而是一種使用現(xiàn)有標準的新方法。
AJAX 是與服務(wù)器交換數(shù)據(jù)并更新部分網(wǎng)頁的藝術(shù),在不重新加載整個頁面的情況下。

就是利用JS來無刷新與后端交互,通過get和post方式把數(shù)據(jù)發(fā)送到后端,或者請求后端的數(shù)據(jù),然后根據(jù)請求的數(shù)據(jù)進行改變DOM節(jié)點等操作,從而取消掉用form的submit方式一提交就會跳轉(zhuǎn)頁面的情況,像在創(chuàng)建賬號的時候檢測此用戶名是否存在就是一個典型的案例,本文講從原生JS和jQuery方面介紹AJAX的實現(xiàn),跨域問題暫且不表。

二、原生JS實現(xiàn)AJAX

所有現(xiàn)代瀏覽器(IE7+、Firefox、Chrome、Safari 以及 Opera)均內(nèi)建 XMLHttpRequest 對象。

1.GET
var xmlhttp = new XMLHttpRequest();
xmlhttp.open("GET","demo_get.php?id=1&name=lemoo&t=" + Math.random(),true);
xmlhttp.send();

傳遞參數(shù)直接在?后指定,多個參數(shù)用&分隔

GET請求同一URL時會有緩存,通過參數(shù)是否一致來判斷

解決緩存問題,加個時間戳使每次參數(shù)不一致,上例中的t=Math.random()

2.POST
var xmlhttp = new XMLHttpRequest();
xmlhttp.open("POST","ajax_test.php",true);
xmlhttp.setRequestHeader("Content-type","application/x-www-form-urlencoded");
xmlhttp.send("fname=Bill&lname=Gates");
xmlhttp.onreadystatechange=function()
  {
  if (xmlhttp.readyState==4 && xmlhttp.status==200)
    {
    document.getElementById("myDiv").innerHTML=xmlhttp.responseText;
    }
  }

POST沒有緩存

POST發(fā)送的數(shù)據(jù)量大

AJAX無法發(fā)送文件

readyState改變時觸發(fā)onreadystatechange事件,4為完成

status是返回狀態(tài),200是成功,404是未找到頁面

responseText是返回的數(shù)據(jù),為字符串格式

三、jQuery實現(xiàn)AJAX 1.GET

使用get()方法時,采用GET方式向服務(wù)器請求數(shù)據(jù),并通過方法中回調(diào)函數(shù)的參數(shù)返回請求的數(shù)據(jù),它的調(diào)用格式如下:
$.get(url,[callback])

$.get("demo_test.php?id=1&name=lemoo",function(data,status){
    alert("Data: " + data + "
Status: " + status);
  });

參數(shù)通過URL傳遞

有緩存

2.POST

get()方法相比,post()方法多用于以POST方式向服務(wù)器發(fā)送數(shù)據(jù),服務(wù)器接收到數(shù)據(jù)之后,進行處理,并將處理結(jié)果返回頁面,調(diào)用格式如下:
$.post(url,[data],[callback])

$.post("demo_test.php",{
  num:1
},
function (data) {
  alert(data);
});

使用serialize()方法可以將表單中有name屬性的元素值進行序列化,生成標準URL編碼文本字符串,直接可用于ajax請求,它的調(diào)用格式如下:
$(selector).serialize()

3.ajax

使用ajax()方法是最底層、功能最強大的請求服務(wù)器數(shù)據(jù)的方法,它不僅可以獲取服務(wù)器返回的數(shù)據(jù),還能向服務(wù)器發(fā)送請求并傳遞數(shù)值,它的調(diào)用格式如下:
$.ajax([settings])
其中參數(shù)settings為發(fā)送ajax請求時的配置對象,在該對象中,url表示服務(wù)器請求的路徑,data為請求時傳遞的數(shù)據(jù),dataType為服務(wù)器返回的數(shù)據(jù)類型,success為請求成功的執(zhí)行的回調(diào)函數(shù),type為發(fā)送數(shù)據(jù)請求的方式,默認為get。

$.ajax({
  type:"post",
  url:"demo_test.php",
  data: { num: 123 },
  dataType:"text",
  success: function (data) {
    alert(1);
  }
});
4.getJSON

使用getJSON()方法可以通過Ajax異步請求的方式,獲取服務(wù)器中的數(shù)組,并對獲取的數(shù)據(jù)進行解析,顯示在頁面中,它的調(diào)用格式為:
$.getJSON(url,[data],[callback])
可以與$.each搭配來遍歷數(shù)據(jù)

$.getJSON("demo_test.php",function(data){
  $.each(data, function (index, sport) {
    if(index==3)
      $("ul").append("
  • " + sport["name"] + "
  • "); }); });

    這樣返回的數(shù)據(jù)直接就是JSON格式的就可以使用,但是要注意緩存問題。

    四、AJAX的調(diào)試

    在運行AJAX的頁面按F12(Chrome下),進入“Network”選項卡,點擊"XHR"過濾器,然后觸發(fā)AJAX的事件。

    點擊要進行調(diào)試的AJAX動作,進入詳情頁。

    Request URL:查看請求的地址,一般在這里查看向后臺請求的URL是否正確,錯誤404的話一般這里會有問題

    Request Method:請求的方式,查看是GET或者POST,GET請求的參數(shù)一致的話會有緩存

    Status Code:返回狀態(tài)。一般是200正常;404未找到頁面,一般是URL錯誤,或者后臺沒有創(chuàng)建相應(yīng)的action;500內(nèi)部服務(wù)錯誤,多為后臺錯誤。

    底下的Query String Parameters是向后臺發(fā)送的數(shù)據(jù),一般這里看參數(shù)是否有問題,格式及命名是否正確,事故多發(fā)地。

    點擊Response就可以查看服務(wù)器返回的數(shù)據(jù)了,一般在這里查看返回是否正常,格式是否正確,一般是JSON。


    基本上通過發(fā)送的數(shù)據(jù)及傳回的數(shù)據(jù)就能定位問題所在了。

    五、總結(jié)

    一般來說,處理AJAX,用jQuery的get和post的就夠用,如果是JSON數(shù)據(jù)的話用getJSON,注意緩存問題,特殊的應(yīng)用再考慮用ajax(),另外,AJAX還有一個很嚴重的問題是跨域,這個以后再說。

    文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

    轉(zhuǎn)載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/85870.html

    相關(guān)文章

    • 原生js實現(xiàn)ajax及get post方法

      摘要:使用過的同學(xué),應(yīng)該對事件綁定方法有一定的了解。實現(xiàn)方式以下為個人類庫中實現(xiàn)方式。代碼中使用到一個基礎(chǔ)方法對象,該對象為的基礎(chǔ)類。如果想了解更多,可以通過點擊進入查看原碼。 使用過jQuery的同學(xué),應(yīng)該對事件綁定方法ajax有一定的了解。 在個人類庫jTool 中實現(xiàn)了這個方法,這里就來細說下原生實現(xiàn)方式。 實現(xiàn)方式 以下為個人類庫jTool 中 Ajax 實現(xiàn)方式。代碼中使用到一個基...

      pkhope 評論0 收藏0
    • 前端相關(guān)大雜燴

      摘要:希望幫助更多的前端愛好者學(xué)習(xí)。前端開發(fā)者指南作者科迪林黎,由前端大師傾情贊助。翻譯最佳實踐譯者張捷滬江前端開發(fā)工程師當(dāng)你問起有關(guān)與時,老司機們首先就會告訴你其實是個沒有網(wǎng)絡(luò)請求功能的庫。 前端基礎(chǔ)面試題(JS部分) 前端基礎(chǔ)面試題(JS部分) 學(xué)習(xí) React.js 比你想象的要簡單 原文地址:Learning React.js is easier than you think 原文作...

      fuyi501 評論0 收藏0
    • Jquery ajax, Axios, Fetch區(qū)別之我見

      摘要:我們都知道因為同源策略的問題,瀏覽器的請求是可能隨便跨域的一定要有跨域頭或者借助,但是,中可以設(shè)置為不跨域,如下所示這樣之后我們會得到一個為的返回。 免費幫忙內(nèi)推阿里等各大IT公司的崗位,有興趣可以帶簡歷加微信angeltune 引言 前端技術(shù)真是一個發(fā)展飛快的領(lǐng)域,我三年前入職的時候只有原生XHR和Jquery ajax,我們還曾被JQuery 1.9版本版本以下不支持大文件請求這個...

      YanceyOfficial 評論0 收藏0
    • JavaWEB開發(fā)14——ajax

      摘要:一概述什么是同步,什么是異步同步現(xiàn)象客戶端發(fā)送請求到服務(wù)器端,當(dāng)服務(wù)器返回響應(yīng)之前,客戶端都處于等待卡死狀態(tài)異步現(xiàn)象客戶端發(fā)送請求到服務(wù)器端,無論服務(wù)器是否返回響應(yīng),客戶端都可以隨意做其他事情,不會被卡死的運行原理頁面發(fā)起請求,會將請求發(fā)送 一、Ajax概述1.什么是同步,什么是異步同步現(xiàn)象:客戶端發(fā)送請求到服務(wù)器端,當(dāng)服務(wù)器返回響應(yīng)之前,客戶端都處于等待 卡死狀態(tài)異步現(xiàn)象:客戶...

      yearsj 評論0 收藏0
    • Ajax詳解

      摘要:當(dāng)請求完成后注冊一個回調(diào)函數(shù)。該請求是否觸發(fā)全局處理事件如等,請求發(fā)送前的回調(diào)函數(shù),用來修改請求發(fā)送前,此功能可用來設(shè)置自定義頭信息,在函數(shù)中返回將取消這個請求。例如,為請求指定一個回調(diào)函數(shù)名。即改變回調(diào)函數(shù)的,默認就是傳入的整個對象。 Ajax Ajax 全稱是 asynchronous javascript and xml,并不是新的編程語言,可以說是已有技術(shù)的組合,主要用來實現(xiàn)客...

      jokester 評論0 收藏0

    發(fā)表評論

    0條評論

    最新活動
    閱讀需要支付1元查看
    <