摘要:觀察函數和函數可以用來作為觀察函數,我們可以使用觀察函數的回調函數來做相應的處理。當請求開始且尚未進行其他傳輸時,會觸發的回調函數。當最后一次活動請求終止時,則會執行通過注冊的回調函數。
對于 jQuery 通過 Ajax 方式傳遞數據時,我們還可以在過程中進行一定的處理,以便達到我們的需求。
觀察函數ajaxStart 和 ajaxStop 函數可以用來作為觀察函數,我們可以使用觀察函數的回調函數來做相應的處理。
當 Ajax 請求開始且尚未進行其他傳輸時,會觸發 ajaxStart 的回調函數。
當最后一次活動請求終止時,則會執行通過 ajaxStop 注冊的回調函數。
由于觀察函數具備全局性,所以需要使用 $(document) 來調用。我們通過使用 Ajax 方法取得一個圖片的例子來測試兩個函數:
當前頁面為:
同目錄下的 test.html 內容為:
點擊按鈕后希望載入圖像:
$("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,利用的是 標簽可以跨域獲取 Javascript 文件的思路,故可以跨域獲取 JSON 數據。
JSONP 的格式是把標準 JSON 文件包裝在一對圓括號中,圓括號又前置一個任意字符串。這個字符串,即所謂的 P,由請求數據的客戶端來決定。
同樣是上例的按鈕,首先我們將外域頁面 otherdomain.com/index.php 內容設置為:
我們使用特殊的占位符 ? 來實現跨域獲取 JSON 數據:
$("button").click(function() { $.getJSON("otherdomain.com/index.php?callback=?", function(data) { console.log(data); }); });數據獲取成功。
參考http://book.douban.com/subject/24669823/
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/78181.html
摘要:在前一篇介紹的數據加載中的例子都是從靜態的文件中取得數據,而更大的價值在于與后端服務器進行數據傳遞,動態地請求和發送數據。首先用方式請求數據方式點擊標簽后,當前頁面為數據請求成功。 在前一篇介紹 jQuery Ajax 的數據加載中的例子都是從靜態的文件中取得數據,而 Ajax 更大的價值在于與后端服務器進行數據傳遞,動態地請求和發送數據。 請求數據 我們可以使用 GET、POST...
摘要:同樣將其綁定在按鈕點擊事件上查看結果為這里需要注意,如果文檔內的格式錯誤,雖然不會報錯,但是將無法執行回調函數。 Ajax 通俗來講即不需要刷新頁面即可從服務器或客戶端上加載數據,當然這些數據的格式是多種多樣的。 加載 HTML 我們通常使用加載 HTML 的方法來加載 HTML 片段,并插入到指定位置,假設當前頁面為: load showImg(http://segmen...
摘要:事件對象是一種結構,它會在元素獲得處理事件的機會時傳遞給調用的事件處理程序。事件對象的屬性指的是事件目標,它將保存發生事件的目標元素。所以,接下來我們就要想辦法改變事件過程來阻止這個行為。 在 《細說 jQuery 事件篇(三) - 事件傳播》 中提到了事件冒泡可能造成的弊端,當時舉了 mouseout 的例子,對于 mouseout 這個特殊情況,我們可以用 hover 方法來解決,...
摘要:是如何決定由哪個元素來處理事件的,以及又是如何優化處理這個問題的,這些都涉及到了事件傳播。事件冒泡的弊端事件冒泡可能會導致意料之外的行為,例如在響應事件時,依舊是上例,當為最外層的添加一個事件。使用方法可以避免事件傳播導致的問題。 Javascript 是如何決定由哪個元素來處理事件的,以及 jQuery 又是如何優化處理這個問題的,這些都涉及到了事件傳播。 事件傳播策略 當頁面內...
摘要:添加全局函數所謂全局函數就是對象的方法,例如在一篇中介紹的等方法。 當我們希望將一些功能性代碼重復使用,可以將其打包成一個 jQuery 插件來使用。 使用 $ 別名 首先我們在編寫插件時必須保證 jQuery 庫已經載入,但是我們不能保證 $ 一定可用,為了使用 $ 別名,我們可以利用 IIFE (Immediately Invoked Function Expression),...
閱讀 2348·2021-11-15 11:37
閱讀 2625·2021-09-23 11:21
閱讀 2952·2021-09-07 10:11
閱讀 3164·2019-08-30 15:53
閱讀 2826·2019-08-29 15:13
閱讀 1606·2019-08-26 13:57
閱讀 1098·2019-08-26 12:23
閱讀 2438·2019-08-26 11:51