對於頁面一些效果,驗證等,我們都是透過JavaScript語言進行完成的,但是它也就像我們的Java程式碼一樣,是最前台語言最基礎的,而jQuery則是對js程式碼進行封裝方便我們前台程式碼的編寫,而且它還有一個非常大的優勢就是解決了瀏覽器的兼容問題,這也是我們使用它非常重要的原因之一。
而現在為了滿足使用者的需求,Ajax(Asynchronous JavaScript + XML)非同步刷新起到了無可比擬的作用,以前寫Ajax操作,總是需要我們想JDBC程式碼一樣進行幾個必備的步驟:AJAX-核心XMLHttpRequest對象,而jQuery也對Ajax非同步操作進行了封裝,這裡看一下幾種常用的方式。
$.ajax,$.post, $.get, $.getJSON。
一, $.ajax,這個是jquery對ajax封裝的最基礎步,透過使用這個函數可以完成非同步通訊的所有功能。也就是說什麼情況下我們都可以透過此方法進行非同步刷新的操作。但是它的參數較多,有的時候可能會很麻煩。來看看常用的參數:
var configObj = {
method //資料的提交方式:get和post
async //是否支援非同步刷新,預設為true
data //需要提交的資料型別10 Json等
success //請求成功後的回呼函數
error //請求失敗後的回呼函數
# #$.ajax(configObj);//透過$.ajax函數呼叫。
好,看一個實際的例子吧,看一個進行非同步刪除的例子:
"font-size:18px;">// 刪除
#T ##
- type :
"POST", #/1# url : "${pageContext. request.contextPath}/org/doDelete.action",//路徑
- #
"org.id" :- #"${org.id}
##> },//數據,這裡使用的是Json格式進行傳輸
- if ( # $(
對上使用對應的結果為對應的結果來處理結果#2
- "#tipMsg").text(
"刪除資料成功");
- ##
tree.deleteItem(##"$##.# } else {
## } 1##
- ## });
##
二,$.post,這個函數其實就是對$.ajax進行了更進一步的封裝,減少了參數,簡化了操作,但是運用的範圍更小了。 $.post簡化了資料提交方式,只能以POST方式提交。只能是異步訪問伺服器,不能同步訪問,不能進行錯誤處理。在滿足這些情況下,我們可以使用這個函數來方便我們的編程,它的主要幾個參數,像method,async等進行了默認設置,我們不可以改變的。例子不再介紹。
url:發送請求位址。
data:待傳送 Key/value 參數。
callback:發送成功時回呼函數。
type:傳回內容格式,xml, html, script, json, text,_default。
三,$.get,和$.post一樣,這個函數是對get方法的提交資料進行封裝,只能使用在get提交資料解決非同步刷新的方式上,使用方式和上邊的也差不多。這裡不再示範。
四, $.getJSON,這個是進一步的封裝,也就是對回傳資料型別為Json操作。裡邊有三個參數,需要我們設置,非常簡單:url,[data],[callback]。
其實會了$.ajax方法,其它的都會使用了,且都是相同的,其實非常簡單。
但是這裡還有一個問題,比較麻煩,就是如果頁面資料量比較大,該怎麼辦呢?在常規表單的處理中,我們使用框架Struts2可以透過網域驅動模式進行自動取得封裝,那麼透過ajax,如何進行封裝呢?這裡JQuery有一個插件,Jquery Form,透過引入此js文件,我們可以模仿表單Form來支援Struts2的網域驅動模式,進行自動資料的封裝。用法和$.ajax類似,看一下實際的例子,這裡寫一個保存用戶的前台代碼:
#"font-size: 18px;"> $(function(){
- //處理前需要做的功能
var options # beforeSubmit :
function() {1 pMsg" ).text("資料正在保存,請稍候...");
- $(
"#insertBtn"). attr("disabled", true);
}, success : function(result) {
//返回成功以後需要的回呼函數$(
"#tipMsg
# # // 控制樹型元件,並增加新的節點 ## tree = window.parent.treeFrame.tree; #
tree.insertNewChild("${org.id}", res } else {
$("#tipM#sg).
- ## }
false);# $("#insertBtn").attr(
"disabled",- true
## clearForm :
## $('#orgForm').ajaxForm(options); //透過Jquery.Form中的ajaxForm方法進行提交
- #
## });
- 就不用再進行資料data的封裝處理,大大簡化了我們ajax的操作這樣非同步刷新的操作。綜上為JQuery中ajax的操作,感覺使用多了,和form表單的處理還是非常相似的,只不過實現的功能不一樣罷了。
- #源自##
以上是有關JQuery中封裝的ajax講解的詳細內容。更多資訊請關注PHP中文網其他相關文章!

实现方法:1、用“$("img").delay(毫秒数).fadeOut()”语句,delay()设置延迟秒数;2、用“setTimeout(function(){ $("img").hide(); },毫秒值);”语句,通过定时器来延迟。

增加元素的方法:1、用append(),语法“$("body").append(新元素)”,可向body内部的末尾处增加元素;2、用prepend(),语法“$("body").prepend(新元素)”,可向body内部的开始处增加元素。

修改方法:1、用css()设置新样式,语法“$(元素).css("min-height","新值")”;2、用attr(),通过设置style属性来添加新样式,语法“$(元素).attr("style","min-height:新值")”。

区别:1、axios是一个异步请求框架,用于封装底层的XMLHttpRequest,而jquery是一个JavaScript库,只是顺便封装了dom操作;2、axios是基于承诺对象的,可以用承诺对象中的方法,而jquery不基于承诺对象。

在jquery中,apply()方法用于改变this指向,使用另一个对象替换当前对象,是应用某一对象的一个方法,语法为“apply(thisobj,[argarray])”;参数argarray表示的是以数组的形式进行传递。

删除方法:1、用empty(),语法“$("div").empty();”,可删除所有子节点和内容;2、用children()和remove(),语法“$("div").children().remove();”,只删除子元素,不删除内容。

on()方法有4个参数:1、第一个参数不可省略,规定要从被选元素添加的一个或多个事件或命名空间;2、第二个参数可省略,规定元素的事件处理程序;3、第三个参数可省略,规定传递到函数的额外数据;4、第四个参数可省略,规定当事件发生时运行的函数。

去掉方法:1、用“$(selector).removeAttr("readonly")”语句删除readonly属性;2、用“$(selector).attr("readonly",false)”将readonly属性的值设置为false。


熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

DVWA
Damn Vulnerable Web App (DVWA) 是一個PHP/MySQL的Web應用程序,非常容易受到攻擊。它的主要目標是成為安全專業人員在合法環境中測試自己的技能和工具的輔助工具,幫助Web開發人員更好地理解保護網路應用程式的過程,並幫助教師/學生在課堂環境中教授/學習Web應用程式安全性。 DVWA的目標是透過簡單直接的介面練習一些最常見的Web漏洞,難度各不相同。請注意,該軟體中

PhpStorm Mac 版本
最新(2018.2.1 )專業的PHP整合開發工具

Atom編輯器mac版下載
最受歡迎的的開源編輯器

MinGW - Minimalist GNU for Windows
這個專案正在遷移到osdn.net/projects/mingw的過程中,你可以繼續在那裡關注我們。 MinGW:GNU編譯器集合(GCC)的本機Windows移植版本,可自由分發的導入函式庫和用於建置本機Windows應用程式的頭檔;包括對MSVC執行時間的擴展,以支援C99功能。 MinGW的所有軟體都可以在64位元Windows平台上運作。