91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

ajax請求過程以及請求方法的案例分析

發布時間:2020-12-08 10:53:19 來源:億速云 閱讀:124 作者:小新 欄目:web開發

這篇文章將為大家詳細講解有關ajax請求過程以及請求方法的案例分析,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。

ajax 的全稱是Asynchronous JavaScript and XML,其中,Asynchronous 是異步的意思,它有別于傳統web開發中采用的同步的方式。據小編翻墻了解到,ajax很早就有了,只不過那時候都不用它,后來谷歌把它用在谷歌地圖上,人們感覺使用起來很方便,而且頁面不用刷新,用戶體驗非常好(那時候的網站也沒有什么用戶體驗^_^)

ajax 原理

XMLHttpRequest是ajax的核心機制,它是在IE5中首先引入的,是一種支持異步請求的技術。簡單的說,也就是javascript可以及時向服務器提出請求和處理響應,而不阻塞用戶,達到頁面無刷新的效果

var xhr = new XMLHttpRequest()
//IE瀏覽器使用var xhr = new ActiveXObject
xhr.open('get', url, true)
xhr.send(null)
xhr.onreadystatechange = function () {
    if (xhr.readyState == 4) {
        if (xhr.status == 200) {
            success(xhr.responseText)
        } else {
            fail && fail(xhr.status)
        }
    }
}

xhr.open()

第三個參數:true/fasle 默認值為true
false就是等待有返回數據的時候再繼續往下走,還沒有得到數據的時候就會卡在那里,直到獲取數據為止。
true就是不等待,直接返回,這就是所謂的異步獲取數據!

xhr.send

需要傳送的數據,接受一個字符串類型

xhr.onreadystatechange

每次狀態改變所都會觸發的事件處理程序

xhr.readyState有以下幾種狀態

0 請求未初始化,open方法尚未調用

1 服務器連接已建立,open方法已經調用,尚未調用send方法

2 請求已接收,也就是接收到頭信息了

3 請求處理中,也就是接收到響應主體了,這時因為響應及http頭不全,這時通過responseBody和responseText獲取部分數據會出現錯誤

4 請求已完成,數據接收完畢,此時可以通過通過responseXml和responseText獲取完整的回應數據

xhr.status常見HTTP狀態

0**:未被始化

1**:請求收到,繼續處理

2**:操作成功收到,分析、接受

3**:完成此請求必須進一步處理

4**:請求包含一個錯誤語法或不能完成

5**:服務器執行一個完全有效請求失敗

jQuery.ajax

$.ajax({
    url: '',
    Type: '',
    data: '',
    async:true,
    dataType: '',
    beforeSend: function(xhr) {
      xhr.setRequestHeader("Access-Toke");
    },
    success: function (data) {
        fn1()
    },
    error: function (err) {
       error && error(err) 
    }
})
fn2()

success-函數

$.ajax中的success方法是否獲取成功的回調,jQuery判斷了以下幾種狀態,在源碼中有以下代碼(大概位置8193行)

isSuccess = status >= 200 && status < 300 || status === 304

304---通常的說法就是瀏覽器還有緩存,服務器告訴客戶,原來緩存的文檔還可以繼續使用

async-布爾值

async默認的設置值為true,這種情況為異步方式,就是說當ajax發送請求后,在等待server端返回的這個過程中,前臺會繼續 執行ajax塊后面的腳本,直到server端返回正確的結果才會去執行success,也就是說這時候執行的是兩個線程,ajax塊發出請求后一個線程 和ajax塊后面的腳本(另一個線程)

asyn設為false時,這時ajax的請求時同步的,也就是說,這個時候ajax塊發出請求后,他會等待在fn1()這個地方,不會去執行fn2(),知道fn1()部分執行完畢。

dataType--字符串

dataType可以指定以下值

xml:返回XML文檔,可用JQuery處理

html:返回純文本HTML信息;包含的script標簽會在插入DOM時執行

script:返回純文本JavaScript代碼。不會自動緩存結果。除非設置了cache參數。注意在遠程請求時(不在同一個域下),所有post請求都將轉為get請求

json:返回JSON數據

jsonp:JSONP格式。使用SONP形式調用函數時,例如myurl?callback=?,JQuery將自動替換后一個“?”為正確的函數名,以執行回調函數

text:返回純文本字符串

beforeSend--函數

送請求前可以修改XMLHttpRequest對象的函數,例如添加自定義HTTP頭。在beforeSend中如果返回false可以取消本次ajax請求。XMLHttpRequest對象是惟一的參數

ajax優缺點

優點 : 通過異步,提升用戶的體驗,減少不必要的數據往返,實現局部刷新

缺點 : 對搜索引擎支持比較弱

關于ajax請求過程以及請求方法的案例分析就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

恭城| 化隆| 涿鹿县| 庆阳市| 顺昌县| 镇宁| 新竹市| 聂荣县| 万山特区| 东源县| 射阳县| 会宁县| 福泉市| 泗水县| 贵南县| 惠东县| 海门市| 西昌市| 阜新市| 许昌县| 盈江县| 东海县| 公安县| 安国市| 临猗县| 绍兴县| 渝中区| 甘孜| 丽江市| 蒙城县| 平原县| 平江县| 肥城市| 蒙阴县| 余姚市| 桐城市| 柳河县| 沽源县| 禄劝| 柳州市| 土默特左旗|