国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > JavaScript > 正文

jQuery學習筆記之 Ajax操作篇(三) - 過程處理

2019-11-20 14:24:47
字體:
來源:轉載
供稿:網友

觀察函數

ajaxStart 和 ajaxStop 函數可以用來作為觀察函數,我們可以使用觀察函數的回調函數來做相應的處理。

當 Ajax 請求開始且尚未進行其他傳輸時,會觸發 ajaxStart 的回調函數。
當最后一次活動請求終止時,則會執行通過 ajaxStop 注冊的回調函數。
由于觀察函數具備全局性,所以需要使用 $(document) 來調用。我們通過使用 Ajax 方法取得一個圖片的例子來測試兩個函數:
當前頁面為:

<div></div><button>load</button>

同目錄下的 test.html 內容為:

<img src="avatar.jpg" />

點擊按鈕后希望載入圖像:

 $('button').click(function() {  $('div').load('test.html'); });

此時我們可以使用 ajaxStart 和 ajaxStop 函數來增加提示:

 $(document).ajaxStart(function() {//  alert('load a picture'); }).ajaxStop(function() {  alert('show a picture'); }); $('button').click(function() {  $('div').load('test.html'); });

此時點擊按鈕后,再圖像載入前先提示 load a picture,載入后提示 show a picture。

錯誤處理

最常用的方式是全局的 ajaxError 方法,以上例為例,如果我們像一個不存在的頁面發送數據請求:

 $(document).ajaxError(function() {//  alert('load failed!'); }); $('button').click(function() {  $('div').load('noexsited.html'); });

此時點擊按鈕后:

對于非 load 方法,還可以使用 fail 方法來連綴處理:

 $('button').click(function() {  $.get('noexsited.html', function(data) {  }).fail(function(jqXHR) {   alert('status is ' + jqXHR.status);  }); });

JSONP

JSONP 即 JSON with padding,填充式 JSON,利用的是 <script> 標簽可以跨域獲取 Javascript 文件的思路,故可以跨域獲取 JSON 數據。
JSONP 的格式是把標準 JSON 文件包裝在一對圓括號中,圓括號又前置一個任意字符串。這個字符串,即所謂的 P,由請求數據的客戶端來決定。
同樣是上例的按鈕,首先我們將外域頁面 otherdomain.com/index.php 內容設置為:

<?php$data = '{ "name": "stephenlee", "sex": "male" }';echo $_GET['callback'] .'('. $data .')';

我們使用特殊的占位符 ? 來實現跨域獲取 JSON 數據:

 $('button').click(function() {  $.getJSON('otherdomain.com/index.php?callback=?', function(data) {   console.log(data);  }); });


數據獲取成功。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 江源县| 宜良县| 大兴区| 望奎县| 郁南县| 聊城市| 弥渡县| 区。| 凤山县| 丹寨县| 阿拉善右旗| 绩溪县| 文化| 博爱县| 平安县| 鄂托克前旗| 贵港市| 永兴县| 北宁市| 武定县| 犍为县| 高州市| 志丹县| 饶阳县| 佛冈县| 徐汇区| 枝江市| 日喀则市| 广水市| 巴青县| 资中县| 博白县| 西乡县| 象州县| 印江| 延庆县| 融水| 阿鲁科尔沁旗| 普陀区| 花莲县| 黄骅市|