柚子快報(bào)激活碼778899分享:
柚子快報(bào)激活碼778899分享:
3.傳遞方法
load()方法的傳遞方式根據(jù)參數(shù)data來(lái)自動(dòng)指定。如果沒(méi)有參數(shù)傳遞,則采用GET方式傳遞;反之,則會(huì)自動(dòng)轉(zhuǎn)換為POST方法。
//無(wú)參數(shù)傳遞,則是GET方式
$(‘#resText’).load(‘test.php’,function(){
//…
});
//有參數(shù)傳遞,則是POST方式
$(‘#resText’).load(‘test.php’,{name:‘rain’,age:‘22’},function(){
//…
});
4.回調(diào)函數(shù)
對(duì)于必須在加載完成后才能繼續(xù)的操作,load()方法提供了回調(diào)函數(shù)(callback),該函數(shù)有3個(gè)參數(shù),分別代表請(qǐng)求返回的內(nèi)容、請(qǐng)求狀態(tài)和XMLHttpRequest對(duì)象,jQuery代碼如下:
$(“#resText”).load(“test.html”,function (responseText, textStatus, XMLHttpRequest){
alert(responseText); //請(qǐng)求返回的內(nèi)容
alert(textStatus); //請(qǐng)求狀態(tài):success,error
alert(XMLHttpRequest); //XMLHttpRequest對(duì)象
});
在load()方法中,無(wú)論Ajax請(qǐng)求是否成功,只要當(dāng)請(qǐng)求完成(complete)后,回調(diào)函數(shù)(callback)就被觸發(fā)。
**load()方法通常用來(lái)從Web服務(wù)器上獲取靜態(tài)的數(shù)據(jù)文件,然后這并不能體現(xiàn)Ajax的全部?jī)r(jià)值。在項(xiàng)目中,如果需要傳遞一些參數(shù)給服務(wù)器中的頁(yè)面,那么可以使用
.
g
e
t
(
)
?
?
或者
?
?
.get()**或者**
.get()??或者??.post()或者$.ajax()**方法。
$.get()
$.get()方法使用GET方式來(lái)進(jìn)行異步請(qǐng)求。
它的結(jié)構(gòu)為:
$.get(url[,data][,callback][,type])
| 參數(shù)名稱 | 類型 | 說(shuō)明 |
| :-: | :-: | :-: |
| url | String | 請(qǐng)求的HTML頁(yè)的URL地址 |
| data(可選) | Object | 發(fā)送至服務(wù)器的key/value數(shù)據(jù)會(huì)作為QueryString附加到請(qǐng)求URL中 |
| callback(可選) | Function | 載入成功時(shí)回調(diào)函數(shù)(只有當(dāng)Response的返回狀態(tài)是success才調(diào)用該方法)自動(dòng)將請(qǐng)求結(jié)果和狀態(tài)傳遞給該方法 |
| type(可選) | String | 服務(wù)器端返回內(nèi)容的樣式,包括xml、html、script、json、text和_default |
我們用$.get()來(lái)實(shí)現(xiàn)評(píng)論的功能:
get1.html
評(píng)論:
姓名:
內(nèi)容:
已有評(píng)論:
get1.html向get1.php發(fā)送get請(qǐng)求,服務(wù)器端get1.php的代碼如下:
{$_REQUEST['username']}:
{$_REQUEST['content']}
"; ?>
由于服務(wù)器端get1.php返回的數(shù)據(jù)格式是一段HTML片段,因此并不需要經(jīng)過(guò)處理就可以將新的HTML數(shù)據(jù)插入到主頁(yè)面中。
我們?cè)賮?lái)看一下get.html中的核心代碼jQuery是如何完成get請(qǐng)求的:
$(function(){
$(“#send”).click(function(){
$.get(“get1.php”, {
username : $(“#username”).val() ,
content : $(“#content”).val()
}, function (data, textStatus){
$(“#resText”).html(data); // 把返回的數(shù)據(jù)添加到頁(yè)面上
}
);
})
})
我們可以看到在回調(diào)函數(shù)中,我們直接將返回回來(lái)的data(也就是HTML片段)直接在html中使用。
HTML片段實(shí)現(xiàn)起來(lái)只需要很少的工作量,但這種固定的數(shù)據(jù)結(jié)構(gòu)并不一定能夠在其他的Web應(yīng)用程序中得到重用。
XML文檔
服務(wù)器端是如何接收數(shù)據(jù)然后返回XML的呢?
代碼如下:
get2.php ".
“”.
“
“{$_REQUEST[‘content’]}”.
“”.
“”;
?>
注意:由于服務(wù)器端返回的數(shù)據(jù)格式是XML文檔,因此需要在服務(wù)端設(shè)置Content-Type類型,代碼如下:
header(“Content-Type:text/xml; charset=utf-8”);
對(duì)于服務(wù)器端返回的數(shù)據(jù)是XML格式的情況,我們需要對(duì)返回的數(shù)據(jù)進(jìn)行處理,才能應(yīng)用到HTML中,jQuery有強(qiáng)大的DOM處理能力,處理XML文檔與處理HTML文檔一樣,也可以使用常規(guī)的attr()、find()、filter()以及其他方法。jQuery代碼如下:
$(function(){
$(“#send”).click(function(){
$.get(“get2.php”, {
username : $(“#username”).val() ,
content : $(“#content”).val()
}, function (data, textStatus){
var username = $(data).find(“comment”).attr(“username”);
var content = $(data).find(“comment content”).text();
var txtHtml = “
”+username+“:
”+content+“
”;
$(“#resText”).html(txtHtml); // 把返回的數(shù)據(jù)添加到頁(yè)面上
},‘XML’);
});
})
返回?cái)?shù)據(jù)格式為XML文檔的過(guò)程實(shí)現(xiàn)起來(lái)比HTML片段要稍微復(fù)雜些,但XML文檔的可移植性是其他數(shù)據(jù)格式無(wú)法比擬的,因此以這種格式提供的數(shù)據(jù)的重要性將極大提高。不過(guò),XML文檔體積相對(duì)較大,與其他文件格式相比,解析和操作它們的速度要慢一些。
JSON文件
之所以會(huì)出現(xiàn)這種數(shù)據(jù)格式的文件,很大程度上是因?yàn)閄ML文檔體積大和難以解析。JSON文件和XML文檔一樣,也可以方便的被重用。而且,JSON文件非常簡(jiǎn)潔,也容易閱讀。
服務(wù)器端是如何接收數(shù)據(jù)然后返回JSON的呢?
代碼如下:
get3.php
JSON的格式還是比較嚴(yán)格的,所以格式不能寫錯(cuò)了。
由于服務(wù)器端返回的數(shù)據(jù)格式是JSON文件,因此需要對(duì)返回的數(shù)據(jù)進(jìn)行處理之后,才可以將新的HTML數(shù)據(jù)添加到主頁(yè)面中。HTML文件其他部分還是一樣,要修改的地方是jQuery部分,jQuery代碼如下:
$(function(){
$(“#send”).click(function(){
$.get(“get3.php”, {
username : $(“#username”).val() ,
content : $(“#content”).val()
}, function (data, textStatus){
var username = data.username;
var content = data.content;
var txtHtml = “
”+username+“:
”+content+“
”;
$(“#resText”).html(txtHtml); // 把返回的數(shù)據(jù)添加到頁(yè)面上
},“json”);
});
})
在上面的代碼中,將$.get()方法的第4個(gè)參數(shù)(type)設(shè)置為”json”來(lái)代表期待服務(wù)器返回的數(shù)據(jù)格式。
對(duì)于服務(wù)器端返回HTML片段、XML數(shù)據(jù)、JSON數(shù)據(jù)的優(yōu)缺點(diǎn)進(jìn)行分析,可以的得知在不需要與其他應(yīng)用程序共享數(shù)據(jù)的時(shí)候,使用HTML片段來(lái)提供返回?cái)?shù)據(jù)一般來(lái)說(shuō)是最簡(jiǎn)單的;如果數(shù)據(jù)需要重用,那么JSON文件是不錯(cuò)的選擇,它在性能和文件大小方面具有優(yōu)勢(shì),它是Web服務(wù)器領(lǐng)域的“世界語(yǔ)”,我們推薦使用JSON。
$.post()
它與$.get()方法的結(jié)構(gòu)和使用方式都相同,不過(guò)它們之間仍然有以下區(qū)別。
GET請(qǐng)求會(huì)將參數(shù)跟在URL后進(jìn)行傳遞,而POST請(qǐng)求則是作為HTPP消息的實(shí)體內(nèi)容發(fā)送給Web服務(wù)器。當(dāng)然,在Ajax請(qǐng)求中,這種區(qū)別對(duì)用戶是不可見(jiàn)的 GET方式對(duì)傳輸?shù)臄?shù)據(jù)有大小限制(通常不能大于2KB),而使用POST方式傳遞的數(shù)據(jù)量要比GET方式大得多(理論上不受限制) GET方式請(qǐng)求的數(shù)據(jù)會(huì)被瀏覽器緩存起來(lái),因此其他人就可以從瀏覽器的歷史記錄中讀取到這些數(shù)據(jù),例如賬號(hào)和密碼等。在某種情況下,GET方式會(huì)帶來(lái)嚴(yán)重的安全性問(wèn)題,而POST方式相對(duì)來(lái)說(shuō)就可以避免這些問(wèn)題。 GET方式和POST方式傳遞的數(shù)據(jù)在服務(wù)器端的獲取也不相同。在PHP中,GET方式的數(shù)據(jù)可以用KaTeX parse error: Undefined control sequence: \[ at position 6: \_GET\?[?\]獲取,而POST方式可以用_POST[]獲取。兩種方式都可以用$_REQUEST[]來(lái)獲取。
由于POST和GET方式提交的所有數(shù)據(jù)都可以通過(guò)$_REQUEST[]來(lái)獲取,因此只需要改變jQuery函數(shù),就可以將程序在GET請(qǐng)求和POST請(qǐng)求之間切換。
代碼如下:
$(function(){
$(“#send”).click(function(){
$.post(“post1.php”, {
username : $(“#username”).val() ,
content : $(“#content”).val()
}, function (data, textStatus){
$(“#resText”).html(data); // 把返回的數(shù)據(jù)添加到頁(yè)面上
});
})
})
load()、
.
g
e
t
(
)
和
.get()和
.get()和.post(),我們可以發(fā)現(xiàn),
.
g
e
t
(
)
和
.get()和
.get()和.post()方法是jQuery中的全局函數(shù),而在此之前講的load()是對(duì)jQuery對(duì)象進(jìn)行操作的。
上面使用load()、
.
g
e
t
(
)
和
.get()和
.get()和.post()方法完成了一些常規(guī)的Ajax程序,如果還需要編寫一些復(fù)雜的Ajax程序,那么就要用到j(luò)Query中的
.
a
j
a
x
(
)
方法。
.ajax()方法。
.ajax()方法。.ajax()方法不僅能實(shí)現(xiàn)與load()、
.
g
e
t
(
)
和
.get()和
.get()和.post()方法同樣的功能,而且還可以設(shè)定beforeSend()、error()、success()以及complete()回調(diào)函數(shù),通過(guò)這些函數(shù),可以給用戶更多的Ajax提示信息。另外,還有一些參數(shù),可以設(shè)置Ajax請(qǐng)求的超時(shí)時(shí)間或者頁(yè)面的”最后更改”狀態(tài)等。關(guān)于$.ajax()方法將在下一篇博客中講解。
自我介紹一下,小編13年上海交大畢業(yè),曾經(jīng)在小公司待過(guò),也去過(guò)華為、OPPO等大廠,18年進(jìn)入阿里一直到現(xiàn)在。
深知大多數(shù)前端工程師,想要提升技能,往往是自己摸索成長(zhǎng)或者是報(bào)班學(xué)習(xí),但對(duì)于培訓(xùn)機(jī)構(gòu)動(dòng)則幾千的學(xué)費(fèi),著實(shí)壓力不小。自己不成體系的自學(xué)效果低效又漫長(zhǎng),而且極易碰到天花板技術(shù)停滯不前!
因此收集整理了一份《2024年Web前端開(kāi)發(fā)全套學(xué)習(xí)資料》,初衷也很簡(jiǎn)單,就是希望能夠幫助到想自學(xué)提升又不知道該從何學(xué)起的朋友,同時(shí)減輕大家的負(fù)擔(dān)。
既有適合小白學(xué)習(xí)的零基礎(chǔ)資料,也有適合3年以上經(jīng)驗(yàn)的小伙伴深入學(xué)習(xí)提升的進(jìn)階課程,基本涵蓋了95%以上前端開(kāi)發(fā)知識(shí)點(diǎn),真正體系化!
由于文件比較大,這里只是將部分目錄截圖出來(lái),每個(gè)節(jié)點(diǎn)里面都包含大廠面經(jīng)、學(xué)習(xí)筆記、源碼講義、實(shí)戰(zhàn)項(xiàng)目、講解視頻,并且會(huì)持續(xù)更新!
如果你覺(jué)得這些內(nèi)容對(duì)你有幫助,可以掃碼獲?。。。▊渥ⅲ呵岸耍?/p>
結(jié)尾
學(xué)習(xí)html5、css、javascript這些基礎(chǔ)知識(shí),學(xué)習(xí)的渠道很多,就不多說(shuō)了,例如,一些其他的優(yōu)秀博客。但是本人覺(jué)得看書(shū)也很必要,可以節(jié)省很多時(shí)間,常見(jiàn)的javascript的書(shū),例如:javascript的高級(jí)程序設(shè)計(jì),是每位前端工程師必不可少的一本書(shū),邊看邊用,了解js的一些基本知識(shí),基本上很全面了,如果有時(shí)間可以讀一些,js性能相關(guān)的書(shū)籍,以及設(shè)計(jì)者模式,在實(shí)踐中都會(huì)用的到。
資料領(lǐng)取方式:戳這里獲取
提升的進(jìn)階課程,基本涵蓋了95%以上前端開(kāi)發(fā)知識(shí)點(diǎn),真正體系化!**
[外鏈圖片轉(zhuǎn)存中…(img-Gk8nm8gg-1712939734514)]
由于文件比較大,這里只是將部分目錄截圖出來(lái),每個(gè)節(jié)點(diǎn)里面都包含大廠面經(jīng)、學(xué)習(xí)筆記、源碼講義、實(shí)戰(zhàn)項(xiàng)目、講解視頻,并且會(huì)持續(xù)更新!
如果你覺(jué)得這些內(nèi)容對(duì)你有幫助,可以掃碼獲?。。。▊渥ⅲ呵岸耍?/p>
結(jié)尾
學(xué)習(xí)html5、css、javascript這些基礎(chǔ)知識(shí),學(xué)習(xí)的渠道很多,就不多說(shuō)了,例如,一些其他的優(yōu)秀博客。但是本人覺(jué)得看書(shū)也很必要,可以節(jié)省很多時(shí)間,常見(jiàn)的javascript的書(shū),例如:javascript的高級(jí)程序設(shè)計(jì),是每位前端工程師必不可少的一本書(shū),邊看邊用,了解js的一些基本知識(shí),基本上很全面了,如果有時(shí)間可以讀一些,js性能相關(guān)的書(shū)籍,以及設(shè)計(jì)者模式,在實(shí)踐中都會(huì)用的到。
資料領(lǐng)取方式:戳這里獲取
柚子快報(bào)激活碼778899分享:
推薦文章
本文內(nèi)容根據(jù)網(wǎng)絡(luò)資料整理,出于傳遞更多信息之目的,不代表金鑰匙跨境贊同其觀點(diǎn)和立場(chǎng)。
轉(zhuǎn)載請(qǐng)注明,如有侵權(quán),聯(lián)系刪除。