jquery是js編寫(xiě)的框架 可以方便的 實(shí)現(xiàn)復(fù)雜的效果。
杜爾伯特網(wǎng)站建設(shè)公司成都創(chuàng)新互聯(lián)公司,杜爾伯特網(wǎng)站設(shè)計(jì)制作,有大型網(wǎng)站制作公司豐富經(jīng)驗(yàn)。已為杜爾伯特成百上千提供企業(yè)網(wǎng)站建設(shè)服務(wù)。企業(yè)網(wǎng)站搭建\外貿(mào)營(yíng)銷(xiāo)網(wǎng)站建設(shè)要多少錢(qián),請(qǐng)找那個(gè)售后服務(wù)好的杜爾伯特做網(wǎng)站的公司定做!
jQuery是一套跨瀏覽器的JavaScript庫(kù),簡(jiǎn)化HTML與JavaScript之間的操作。它是輕量級(jí)的js庫(kù) ,兼容CSS3,還兼容各種瀏覽器,jQuery2.0及后續(xù)版本不再支持IE6/7/8瀏覽器。由John Resig在2006年1月的BarCamp NYC上發(fā)布第一個(gè)版本。目前是由 Dave Methvin 領(lǐng)導(dǎo)的開(kāi)發(fā)團(tuán)隊(duì)進(jìn)行開(kāi)發(fā)。jQuery使用戶能更方便地處理HTML documents、events、實(shí)現(xiàn)動(dòng)畫(huà)效果,并且方便地為網(wǎng)站提供AJAX交互。jQuery還有一個(gè)比較大的優(yōu)勢(shì)是,它的文檔說(shuō)明很全,而且各種應(yīng)用也說(shuō)得很詳細(xì),同時(shí)還有許多成熟的插件可供選擇。jQuery能夠使用戶的html頁(yè)面保持代碼和html內(nèi)容分離,也就是說(shuō),不用再在html里面插入一堆js來(lái)調(diào)用命令了,只需定義id即可。
ajax的參數(shù)data是對(duì)象,即 oName: 'oValue' 這樣的方式,而不是用=。
如:
$.ajax({
type: 'post',
url: 'x.ashx',
data: {
user: 'jiayou'
},
success: function(data) {
// ....
}
});
Query Ajax在web應(yīng)用開(kāi)發(fā)中很常用,它主要包括有ajax,get,post,load,getscript等等這幾種常用無(wú)刷新操作方法,接下來(lái)通過(guò)本文給大家介紹jquery ajax 上傳文件處理方式。
FormData對(duì)象
XMLHttpRequest Level 2添加了一個(gè)新的接口FormData.利用FormData對(duì)象,我們可以通過(guò)JavaScript用一些鍵值對(duì)來(lái)模擬一系列表單控件,我們還可以使用XMLHttpRequest的send()方法來(lái)異步的提交這個(gè)”表單”.比起普通的ajax,使用FormData的最大優(yōu)點(diǎn)就是我們可以異步上傳一個(gè)二進(jìn)制文件.
所有主流瀏覽器的較新版本都已經(jīng)支持這個(gè)對(duì)象了,比如Chrome 7+、Firefox 4+、IE 10+、Opera 12+、Safari 5+。之前都是用原生js的XMLHttpRequest寫(xiě)的請(qǐng)求
XMLHttpRequest方式
xhr.open("POST", uri, true);
xhr.onreadystatechange = function() {
if (xhr.readyState == 4 xhr.status == 200) {
// Handle response.
alert(xhr.responseText); // handle response.
}
};
fd.append('myFile', file);
// Initiate a multipart/form-data upload
xhr.send(fd);
其實(shí)jquery的ajax也可以支持到的,關(guān)鍵是設(shè)置:processData 和 contentType 。
ajax方式
var formData = new FormData();
var name = $("input").val();
formData.append("file",$("#upload")[0].files[0]);
formData.append("name",name);
$.ajax({
url : Url,
type : 'POST',
data : formData,
// 告訴jQuery不要去處理發(fā)送的數(shù)據(jù)
processData : false,
// 告訴jQuery不要去設(shè)置Content-Type請(qǐng)求頭
contentType : false,
beforeSend:function(){
console.log("正在進(jìn)行,請(qǐng)稍候");
},
success : function(responseStr) {
if(responseStr.status===0){
console.log("成功"+responseStr);
}else{
console.log("失敗");
}
},
error : function(responseStr) {
console.log("error");
}
});
jquery是對(duì)JS的集成,與css結(jié)合,其優(yōu)點(diǎn)是內(nèi)置了很多函數(shù)以供快速的定位、遍歷、修改(/賦值)網(wǎng)頁(yè)元素,大部分情況下可以使函數(shù)通用于不同的瀏覽器端。
ajax用于異步刷新,不通過(guò)傳統(tǒng)提交頁(yè)面的方式實(shí)現(xiàn)與服務(wù)器端交互并處理回傳的數(shù)據(jù)。
jquery中也集成了ajax,使用也很方便。
jQuery中ajax的4種常用請(qǐng)求方式:
1.$.ajax()返回其創(chuàng)建的 XMLHttpRequest 對(duì)象。
$.ajax() 只有一個(gè)參數(shù):參數(shù) key/value 對(duì)象,包含各配置及回調(diào)函數(shù)信息。如果指定了 dataType 選項(xiàng),請(qǐng)確保服務(wù)器返回正確的 MIME 信息,(如 xml 返回 "text/xml")。
實(shí)例:
保存數(shù)據(jù)到服務(wù)器,成功時(shí)顯示信息。
$.ajax({ type: "post", dataType: "html", url: '/Resources/GetList.ashx', data: dataurl, success: function (data) {
if (data != "") {
$("#pager").pager({
pagenumber: pagenumber, pagecount: data.split("$$")[1],
buttonClickCallback: PageClick });
$("#anhtml").html(data.split("$$")[0]);
}
}
});
2.通過(guò)遠(yuǎn)程 HTTP GET 請(qǐng)求載入信息。
這是一個(gè)簡(jiǎn)單的 GET 請(qǐng)求功能以取代復(fù)雜 $.ajax 。請(qǐng)求成功時(shí)可調(diào)用回調(diào)函數(shù)
。如果需要在出錯(cuò)時(shí)執(zhí)行函數(shù),請(qǐng)使用 $.ajax。 實(shí)例:
$.get("test.cgi", { name: "John", time: "2pm" },
function(data){
alert("Data Loaded: " + data);
});
3. 通過(guò)遠(yuǎn)程 HTTP POST 請(qǐng)求載入信息。 這是一個(gè)簡(jiǎn)單的 POST 請(qǐng)求功能以取代復(fù)雜 $.ajax 。
請(qǐng)求成功時(shí)可調(diào)用回調(diào)函數(shù)。如果需要在出錯(cuò)時(shí)執(zhí)行函數(shù),請(qǐng)使用 $.ajax。
實(shí)例:
$.post("/Resources/addfriend.ashx", { "fid": fids, "fname": fnames, "tuid": tuids, "tuname": tunames },
function (data) {
if (data == "ok") {
alert("添加成功!");
}
}
)
4.通過(guò) HTTP GET 請(qǐng)求載入 JSON 數(shù)據(jù)。
實(shí)例:
$.getJSON("api.flickr.com/services/feeds/photos_public.gne?tags=cattagmode=anyformat=json
jsoncallback=?,前面加上http://", function(data){
$.each(data.items, function(i,item){
$("img/").attr("src", item.media.m).appendTo("#images");
if ( i == 3 ) return false;
});
});