看juqery的API啊,里面都有。

創(chuàng)新互聯(lián)堅持“要么做到,要么別承諾”的工作理念,服務(wù)領(lǐng)域包括:網(wǎng)站設(shè)計、做網(wǎng)站、企業(yè)官網(wǎng)、英文網(wǎng)站、手機端網(wǎng)站、網(wǎng)站推廣等服務(wù),滿足客戶于互聯(lián)網(wǎng)時代的西雙版納網(wǎng)站設(shè)計、移動媒體設(shè)計的需求,幫助企業(yè)找到有效的互聯(lián)網(wǎng)解決方案。努力成為您成熟可靠的網(wǎng)絡(luò)建設(shè)合作伙伴!
通過 HTTP 請求加載遠程數(shù)據(jù)。
jQuery 底層 AJAX 實現(xiàn)。簡單易用的高層實現(xiàn)見 $.get, $.post 等。$.ajax() 返回其創(chuàng)建的 XMLHttpRequest 對象。大多數(shù)情況下你無需直接操作該對象,但特殊情況下可用于手動終止請求。
$.ajax() 只有一個參數(shù):參數(shù) key/value 對象,包含各配置及回調(diào)函數(shù)信息。詳細參數(shù)選項見下。
注意: 如果你指定了 dataType 選項,請確保服務(wù)器返回正確的 MIME 信息,(如 xml 返回 "text/xml")。錯誤的 MIME 類型可能導致不可預(yù)知的錯誤。見 Specifying the Data Type for AJAX Requests 。
注意:如果dataType設(shè)置為"script",那么在遠程請求時(不在同一個域下),所有POST請求都將轉(zhuǎn)為GET請求。(因為將使用DOM的script標簽來加載)
jQuery 1.2 中,您可以跨域加載 JSON 數(shù)據(jù),使用時需將數(shù)據(jù)類型設(shè)置為 JSONP。使用 JSONP 形式調(diào)用函數(shù)時,如 "myurl?callback=?" jQuery 將自動替換 ? 為正確的函數(shù)名,以執(zhí)行回調(diào)函數(shù)。數(shù)據(jù)類型設(shè)置為 "jsonp" 時,jQuery 將自動調(diào)用回調(diào)函數(shù)。
參數(shù)
options (可選)ObjectAJAX 請求設(shè)置。所有選項都是可選的。
選項
asyncBoolean(默認: true) 默認設(shè)置下,所有請求均為異步請求。如果需要發(fā)送同步請求,請將此選項設(shè)置為 false。注意,同步請求將鎖住瀏覽器,用戶其它操作必須等待請求完成才可以執(zhí)行。
beforeSendFunction發(fā)送請求前可修改 XMLHttpRequest 對象的函數(shù),如添加自定義 HTTP 頭。XMLHttpRequest 對象是唯一的參數(shù)。這是一個 Ajax 事件。如果返回false可以取消本次ajax請求。
function (XMLHttpRequest) {
this; // 調(diào)用本次AJAX請求時傳遞的options參數(shù)
}
cacheBoolean(默認: true,dataType為script時默認為false) jQuery 1.2 新功能,設(shè)置為 false 將不會從瀏覽器緩存中加載請求信息。
completeFunction請求完成后回調(diào)函數(shù) (請求成功或失敗時均調(diào)用)。參數(shù): XMLHttpRequest 對象和一個描述成功請求類型的字符串。 Ajax 事件。
function (XMLHttpRequest, textStatus) {
this; // 調(diào)用本次AJAX請求時傳遞的options參數(shù)
}
contentTypeString(默認: "application/x-www-form-urlencoded") 發(fā)送信息至服務(wù)器時內(nèi)容編碼類型。默認值適合大多數(shù)應(yīng)用場合。
dataObject,String發(fā)送到服務(wù)器的數(shù)據(jù)。將自動轉(zhuǎn)換為請求字符串格式。GET 請求中將附加在 URL 后。查看 processData 選項說明以禁止此自動轉(zhuǎn)換。必須為 Key/Value 格式。如果為數(shù)組,jQuery 將自動為不同值對應(yīng)同一個名稱。如 {foo:["bar1", "bar2"]} 轉(zhuǎn)換為 'foo=bar1foo=bar2'。
dataFilterFunction給Ajax返回的原始數(shù)據(jù)的進行預(yù)處理的函數(shù)。提供data和type兩個參數(shù):data是Ajax返回的原始數(shù)據(jù),type是調(diào)用jQuery.ajax時提供的dataType參數(shù)。函數(shù)返回的值將由jQuery進一步處理。
function (data, type) {
// 對Ajax返回的原始數(shù)據(jù)進行預(yù)處理
return data // 返回處理后的數(shù)據(jù)
}
dataTypeString
預(yù)期服務(wù)器返回的數(shù)據(jù)類型。如果不指定,jQuery 將自動根據(jù) HTTP 包 MIME 信息返回 responseXML 或 responseText,并作為回調(diào)函數(shù)參數(shù)傳遞,可用值:
"xml": 返回 XML 文檔,可用 jQuery 處理。
"html": 返回純文本 HTML 信息;包含的script標簽會在插入dom時執(zhí)行。
"script": 返回純文本 JavaScript 代碼。不會自動緩存結(jié)果。除非設(shè)置了"cache"參數(shù)。'''注意:'''在遠程請求時(不在同一個域下),所有POST請求都將轉(zhuǎn)為GET請求。(因為將使用DOM的script標簽來加載)
"json": 返回 JSON 數(shù)據(jù) 。
"jsonp": JSONP 格式。使用 JSONP 形式調(diào)用函數(shù)時,如 "myurl?callback=?" jQuery 將自動替換 ? 為正確的函數(shù)名,以執(zhí)行回調(diào)函數(shù)。
"text": 返回純文本字符串
errorFunction(默認: 自動判斷 (xml 或 html)) 請求失敗時調(diào)用時間。參數(shù)有以下三個:XMLHttpRequest 對象、錯誤信息、(可選)捕獲的錯誤對象。如果發(fā)生了錯誤,錯誤信息(第二個參數(shù))除了得到null之外,還可能是"timeout", "error", "notmodified" 和 "parsererror"。Ajax 事件。
function (XMLHttpRequest, textStatus, errorThrown) {
// 通常 textStatus 和 errorThrown 之中
// 只有一個會包含信息
this; // 調(diào)用本次AJAX請求時傳遞的options參數(shù)
}
globalBoolean(默認: true) 是否觸發(fā)全局 AJAX 事件。設(shè)置為 false 將不會觸發(fā)全局 AJAX 事件,如 ajaxStart 或 ajaxStop 可用于控制不同的 Ajax 事件。
ifModifiedBoolean(默認: false) 僅在服務(wù)器數(shù)據(jù)改變時獲取新數(shù)據(jù)。使用 HTTP 包 Last-Modified 頭信息判斷。
jsonpString在一個jsonp請求中重寫回調(diào)函數(shù)的名字。這個值用來替代在"callback=?"這種GET或POST請求中URL參數(shù)里的"callback"部分,比如{jsonp:'onJsonPLoad'}會導致將"onJsonPLoad=?"傳給服務(wù)器。
passwordString用于響應(yīng)HTTP訪問認證請求的密碼
processDataBoolean(默認: true) 默認情況下,發(fā)送的數(shù)據(jù)將被轉(zhuǎn)換為對象(技術(shù)上講并非字符串) 以配合默認內(nèi)容類型 "application/x-www-form-urlencoded"。如果要發(fā)送 DOM 樹信息或其它不希望轉(zhuǎn)換的信息,請設(shè)置為 false。
scriptCharsetString只有當請求時dataType為"jsonp"或"script",并且type是"GET"才會用于強制修改charset。通常在本地和遠程的內(nèi)容編碼不同時使用。
successFunction請求成功后的回調(diào)函數(shù)。參數(shù):由服務(wù)器返回,并根據(jù)dataType參數(shù)進行處理后的數(shù)據(jù);描述狀態(tài)的字符串。 Ajax 事件。
function (data, textStatus) {
// data 可能是 xmlDoc, jsonObj, html, text, 等等...
this; // 調(diào)用本次AJAX請求時傳遞的options參數(shù)
}
timeoutNumber設(shè)置請求超時時間(毫秒)。此設(shè)置將覆蓋全局設(shè)置。
typeString(默認: "GET") 請求方式 ("POST" 或 "GET"), 默認為 "GET"。注意:其它 HTTP 請求方法,如 PUT 和 DELETE 也可以使用,但僅部分瀏覽器支持。
urlString(默認: 當前頁地址) 發(fā)送請求的地址。
usernameString用于響應(yīng)HTTP訪問認證請求的用戶名
xhrFunction需要返回一個XMLHttpRequest 對象。默認在IE下是ActiveXObject 而其他情況下是XMLHttpRequest 。用于重寫或者提供一個增強的XMLHttpRequest 對象。這個參數(shù)在jQuery 1.3以前不可用。
示例
描述:
加載并執(zhí)行一個 JS 文件。
jQuery 代碼:
$.ajax({
type: "GET",
url: "test.js",
dataType: "script"
});描述:
保存數(shù)據(jù)到服務(wù)器,成功時顯示信息。
jQuery 代碼:
$.ajax({
type: "POST",
url: "some.php",
data: "name=Johnlocation=Boston",
success: function(msg){
alert( "Data Saved: " + msg );
}
});描述:
裝入一個 HTML 網(wǎng)頁最新版本。
jQuery 代碼:
$.ajax({
url: "test.html",
cache: false,
success: function(html){
$("#results").append(html);
}
});描述:
同步加載數(shù)據(jù)。發(fā)送請求時鎖住瀏覽器。需要鎖定用戶交互操作時使用同步方式。
jQuery 代碼:
var html = $.ajax({
url: "some.php",
async: false
}).responseText;描述:
發(fā)送 XML 數(shù)據(jù)至服務(wù)器。設(shè)置 processData 選項為 false,防止自動轉(zhuǎn)換數(shù)據(jù)格式。
jQuery 代碼:
var xmlDocument = [create xml document];
$.ajax({
url: "page.php",
processData: false,
data: xmlDocument,
success: handleResponse
});
jquery ajax 回調(diào)函數(shù)只要配置正確就可以使用
$.ajax({?url:?"test.html",?context:?document.body,?success:?function(){
alert("回調(diào)函數(shù)")
}})
使用代碼如上
回調(diào)函數(shù)實現(xiàn)的機制是:
⑴定義一個回調(diào)函數(shù);
⑵提供函數(shù)實現(xiàn)的一方在初始化的時候,將回調(diào)函數(shù)的函數(shù)指針注冊給調(diào)用者;
⑶當特定的事件或條件發(fā)生的時候,調(diào)用者使用函數(shù)指針調(diào)用回調(diào)函數(shù)對事件進行處理。
知道拓展:
jQuery是一套跨瀏覽器的JavaScript庫,簡化HTML與JavaScript之間的操作。由John Resig在2006年1月的BarCamp NYC上發(fā)布第一個版本。目前是由 Dave Methvin 領(lǐng)導的開發(fā)團隊進行開發(fā)。全球前10000個訪問最高的網(wǎng)站中,有59%使用了jQuery,是目前最受歡迎的JavaScript庫。
回調(diào)函數(shù)是應(yīng)用程序提供給Windows系統(tǒng)DLL或其它DLL調(diào)用的函數(shù),一般用于截獲消息、獲取系統(tǒng)信息或處理異步事件。在計算機程序設(shè)計中,回調(diào)函數(shù),或簡稱回調(diào),是指通過函數(shù)參數(shù)傳遞到其它代碼的,某一塊可執(zhí)行代碼的引用。這一設(shè)計允許了底層代碼調(diào)用在高層定義的子程序。
jquery ajax 回調(diào)函數(shù)使用挺簡單的,只要配置正確就可以使用。
$.ajax({?url:?"test.html",?context:?document.body,?success:?function(){
alert("回調(diào)函數(shù)")
}});
使用代碼如上,JQUERY通信組件這塊封裝的比較好,使用很方便。還可以配置異步或同步。
再補充一點,一般在回調(diào)函數(shù)里給個操作的提示信息,然后再進行相關(guān)的更新操作
?因為javascript的運行機制的原因,jquery作為成熟的工具,為javascript提供了大量的回調(diào)函數(shù)(callback)。
?因為回調(diào)函數(shù)的工作原理以及工作時機,很多新手對回調(diào)函數(shù)不能熟練運用。回調(diào)函數(shù)的重要作用之一,就是在某項操作完成時,進行下一項操作。這兩項操作功能上不一定耦合,但是邏輯上卻必須耦合。意思是前一個操作實現(xiàn)的功能(效果)可以和回調(diào)函數(shù)實現(xiàn)的功能毫無聯(lián)系,但是二者在代碼邏輯上卻是耦合的。耦合的意思是說,當一操作進行后,二操作會緊跟進行,二者的運行關(guān)系密不可分。回調(diào)函數(shù)增加了程序的耦合性,使代碼的邏輯更容易理解。
?回調(diào)函數(shù)的用處在javascript中可謂處處體現(xiàn),比如最為重要的就是AJAX回調(diào)。
?Jquery中提供了大量大回調(diào)函數(shù),比如complete,success,fail等操作。這些操作的調(diào)用時機就如同他們的名字一樣。success以為著成功的時候調(diào)用,等。
舉個簡單的例子,以jquery中的動畫為例,現(xiàn)在我想實現(xiàn)一個讓id為animate的dom對象寬度邊長的動畫,在這個對象變長之后,我想要提示用戶,這個對象已經(jīng)變長了。因此,我得使用以下的代碼:
$("#animate").animate({
width:?200
},?{
duration:?500,
success:?function()?{
alert("width?已經(jīng)變長了");
},
error:?function()?{
alert("出現(xiàn)了錯誤");
}
});
以上的代碼定義了兩個回調(diào)函數(shù)success和error,顧名思義,success是在成功的時候就會調(diào)用,error是在出錯誤之后調(diào)用。
這就是回調(diào)函數(shù)的基本運用。
看到這兒,或許你會問,為什么我不直接用這樣的代碼呢?
try?{
$("#animate").animate({
width:?2000
},?500,?"linear");
alert(""width已經(jīng)變長了);
}?catch(error)?{
alert("出錯了");
}
如果你測試你會發(fā)現(xiàn),動畫并未完成,就出現(xiàn)了alert彈窗。
這就是javascript的運行機制所造成的,javascript的運行機制分為同步和異步,異步操作會破壞腳本的執(zhí)行流,使得程序跳過異步(異步仍然在進行)而進入接下來的程序,異步操作即使在進行,也不會影響javascript的繼續(xù)執(zhí)行,也就是不會產(chǎn)生阻塞。同步操作中的定時操作有著與異步很相似的運行機制,但是依然是同步操作。以上的錯誤正是由于定時操作引起的。
回調(diào)函數(shù)的作用,最為重要的運用,就是運用在異步操作和定時操作。
jquery中運用回調(diào)函數(shù)最重要的地方有兩個,一個是動畫回調(diào)(就是在動畫執(zhí)行完成,或者執(zhí)行錯誤,或者執(zhí)行失敗的時候調(diào)用),以及ajax(同動畫)。ajax與回調(diào)是密不可分的。
回調(diào)函數(shù)指的是被調(diào)用者完成處理后自動回調(diào)調(diào)用者預(yù)先傳遞的函數(shù)。在類C語言中通常通過函數(shù)指針/引用的方式傳遞。jQuery也提供類似的回調(diào)函數(shù)機制。但是如何正確傳遞回調(diào)函數(shù)仍然值得一提。在John(jQuery Founder)寫的指南中有詳細的介紹。1、不帶參數(shù)的回調(diào) $.get('myhtmlpage.html', myCallBack);其中myCallBack是函數(shù)名字。函數(shù)是javascript的基礎(chǔ)。可以當作引用變量一樣傳遞。2、帶參數(shù)的回調(diào)很自然的,按照以往的經(jīng)驗,我們會認為帶參數(shù)的回調(diào)是下面的樣子:$.get('myhtmlpage.html', myCallBack(param1, param2));但這樣將不能正常工作。myCallBack(param1, param2)會在調(diào)用這個語句的時候就被執(zhí)行,而不是在之后。下面的語法才是正確的:$.get('myhtmlpage.html', function(){ myCallBack(param1, param2); });這樣回調(diào)函數(shù)被作為函數(shù)指針傳遞,將在get操作執(zhí)行完成后被執(zhí)行。
分享標題:回調(diào)函數(shù)jquery,回調(diào)函數(shù)的用法
本文URL:http://chinadenli.net/article45/dsidsei.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供品牌網(wǎng)站制作、外貿(mào)網(wǎng)站建設(shè)、做網(wǎng)站、網(wǎng)站策劃、網(wǎng)站設(shè)計公司、域名注冊
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)