jQuery學(xué)習(xí)筆記之 Ajax操作篇(三) - 過(guò)程處理
觀察函數(shù)
ajaxStart 和 ajaxStop 函數(shù)可以用來(lái)作為觀察函數(shù),我們可以使用觀察函數(shù)的回調(diào)函數(shù)來(lái)做相應(yīng)的處理。
當(dāng) Ajax 請(qǐng)求開(kāi)始且尚未進(jìn)行其他傳輸時(shí),會(huì)觸發(fā) ajaxStart 的回調(diào)函數(shù)。
當(dāng)最后一次活動(dòng)請(qǐng)求終止時(shí),則會(huì)執(zhí)行通過(guò) ajaxStop 注冊(cè)的回調(diào)函數(shù)。
由于觀察函數(shù)具備全局性,所以需要使用 $(document) 來(lái)調(diào)用。我們通過(guò)使用 Ajax 方法取得一個(gè)圖片的例子來(lái)測(cè)試兩個(gè)函數(shù):
當(dāng)前頁(yè)面為:
<div></div> <button>load</button>

同目錄下的 test.html 內(nèi)容為:
<img src="avatar.jpg" />
點(diǎn)擊按鈕后希望載入圖像:
$('button').click(function() {
$('div').load('test.html');
});

此時(shí)我們可以使用 ajaxStart 和 ajaxStop 函數(shù)來(lái)增加提示:
$(document).ajaxStart(function() {//
alert('load a picture');
}).ajaxStop(function() {
alert('show a picture');
});
$('button').click(function() {
$('div').load('test.html');
});
此時(shí)點(diǎn)擊按鈕后,再圖像載入前先提示 load a picture,載入后提示 show a picture。
錯(cuò)誤處理
最常用的方式是全局的 ajaxError 方法,以上例為例,如果我們像一個(gè)不存在的頁(yè)面發(fā)送數(shù)據(jù)請(qǐng)求:
$(document).ajaxError(function() {//
alert('load failed!');
});
$('button').click(function() {
$('div').load('noexsited.html');
});
此時(shí)點(diǎn)擊按鈕后:

對(duì)于非 load 方法,還可以使用 fail 方法來(lái)連綴處理:
$('button').click(function() {
$.get('noexsited.html', function(data) {
}).fail(function(jqXHR) {
alert('status is ' + jqXHR.status);
});
});

JSONP
JSONP 即 JSON with padding,填充式 JSON,利用的是 <script> 標(biāo)簽可以跨域獲取 Javascript 文件的思路,故可以跨域獲取 JSON 數(shù)據(jù)。
JSONP 的格式是把標(biāo)準(zhǔn) JSON 文件包裝在一對(duì)圓括號(hào)中,圓括號(hào)又前置一個(gè)任意字符串。這個(gè)字符串,即所謂的 P,由請(qǐng)求數(shù)據(jù)的客戶端來(lái)決定。
同樣是上例的按鈕,首先我們將外域頁(yè)面 otherdomain.com/index.php 內(nèi)容設(shè)置為:
<?php
$data = '{ "name": "stephenlee", "sex": "male" }';
echo $_GET['callback'] .'('. $data .')';
我們使用特殊的占位符 ? 來(lái)實(shí)現(xiàn)跨域獲取 JSON 數(shù)據(jù):
$('button').click(function() {
$.getJSON('otherdomain.com/index.php?callback=?', function(data) {
console.log(data);
});
});

數(shù)據(jù)獲取成功。
- 揭開(kāi)AJAX神秘的面紗(AJAX個(gè)人學(xué)習(xí)筆記)
- AJax 學(xué)習(xí)筆記二(onreadystatechange的作用)
- JavaScript高級(jí)程序設(shè)計(jì) XML、Ajax 學(xué)習(xí)筆記
- jquery中ajax學(xué)習(xí)筆記一
- jquery ajax學(xué)習(xí)筆記2 使用XMLHttpRequest對(duì)象的responseXML
- jquery中ajax學(xué)習(xí)筆記3
- jquery中ajax學(xué)習(xí)筆記4
- jQuery學(xué)習(xí)筆記之 Ajax操作篇(一) - 數(shù)據(jù)加載
- jQuery學(xué)習(xí)筆記之 Ajax操作篇(二) - 數(shù)據(jù)傳遞
- Ajax學(xué)習(xí)筆記整理
相關(guān)文章
jQuery EasyUI API 中文文檔 - ValidateBox驗(yàn)證框
jQuery EasyUI API 中文文檔 - ValidateBox驗(yàn)證框,使用jQuery EasyUI的朋友可以參考下。2011-10-10
EasyUI Datebox 日期驗(yàn)證之開(kāi)始日期小于結(jié)束時(shí)間
這篇文章主要介紹了EasyUI Datebox 日期驗(yàn)證之開(kāi)始日期小于結(jié)束時(shí)間,需要的朋友可以參考下2017-05-05
JQuery通過(guò)AJAX從后臺(tái)獲取信息顯示在表格上并支持行選中
這篇文章主要介紹了JQuery通過(guò)AJAX從后臺(tái)獲取信息顯示在表格上并支持行選中的相關(guān)資料,需要的朋友可以參考下2015-09-09
jquery輸入數(shù)字隨機(jī)抽獎(jiǎng)特效的簡(jiǎn)單實(shí)現(xiàn)代碼
下面小編就為大家?guī)?lái)一篇jquery輸入數(shù)字隨機(jī)抽獎(jiǎng)特效的簡(jiǎn)單實(shí)現(xiàn)代碼。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2016-06-06
簡(jiǎn)單的jQuery banner圖片輪播實(shí)例代碼
這篇文章主要介紹了簡(jiǎn)單的jQuery banner圖片輪播實(shí)例代碼的相關(guān)資料,需要的朋友可以參考下2016-03-03
一個(gè)有意思的鼠標(biāo)點(diǎn)擊文字特效jquery代碼
這篇文章主要介紹了一個(gè)有意思的鼠標(biāo)點(diǎn)擊文字特效jquery代碼,需要的朋友可以參考下2017-09-09
jquery mobile移動(dòng)端幻燈片滑動(dòng)切換效果
這篇文章主要為大家詳細(xì)介紹了jquery mobile移動(dòng)端幻燈片滑動(dòng)切換效果,實(shí)現(xiàn)滑動(dòng)切換和點(diǎn)擊切換,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-01-01

