Ajax請求的原理
站在用戶的角度思考問題,與客戶深入溝通,找到隰縣網(wǎng)站設(shè)計與隰縣網(wǎng)站推廣的解決方案,憑借多年的經(jīng)驗,讓設(shè)計與互聯(lián)網(wǎng)技術(shù)結(jié)合,創(chuàng)造個性化、用戶體驗好的作品,建站類型包括:網(wǎng)站設(shè)計制作、成都網(wǎng)站制作、企業(yè)官網(wǎng)、英文網(wǎng)站、手機端網(wǎng)站、網(wǎng)站推廣、主機域名、虛擬空間、企業(yè)郵箱。業(yè)務(wù)覆蓋隰縣地區(qū)。1.原理:在Ajax請求中,html頁面的中操作將通過Ajax引擎與服務(wù)器端進行通訊,然后將返回的結(jié)果提交到客戶端頁面的Ajax引擎,再由Ajax引擎來決定將服務(wù)器端返回數(shù)據(jù)插入到頁面的指定位置。從而實現(xiàn)無需刷新頁面的http請求。
2.Ajax請求的優(yōu)點
a.大的優(yōu)點是,無需刷新就可更新頁面
b.可以把原先服務(wù)器端負擔的工作的轉(zhuǎn)移客戶端,利用客戶端的閑置資源進行處理,減輕服務(wù)器和帶寬的負擔,節(jié)約空間和成本
c.Ajax沒有平臺限制。Ajax把服務(wù)器由原先的傳送內(nèi)容轉(zhuǎn)變?yōu)閭鬏敂?shù)據(jù),而數(shù)據(jù)格式可以為純文本和XML格式,這兩種格式?jīng)]有平臺限制。
d.可以調(diào)用Xml等外部數(shù)據(jù),進一步促進頁面的顯示和數(shù)據(jù)的分離
3.Ajax使用的技術(shù)
a.XMLHttpRequest對象
b.XML
c.JavaScript
d.Css
e.DOM
4.Ajax請求時性能的優(yōu)化
a.盡量使用局部變量,不要使用全局變量
b.優(yōu)化for循環(huán)
c.盡量少使用eval,每次使用eval都會浪費大量時間
d.將DOM節(jié)點附加到文檔上
e.盡量減少使用點“.”號操作符的使用
?
方法get()和post()基本區(qū)別:
兩種在客戶端和服務(wù)器端進行請求-響應(yīng)的常用方法是:GET 和 POST。
·?GET?- 從指定的資源請求數(shù)據(jù)
POST?- 向指定的資源提交要處理的數(shù)據(jù)
GET 基本上用于從服務(wù)器獲得(取回)數(shù)據(jù)。注釋:GET 方法可能返回緩存數(shù)據(jù)。
POST 也可用于從服務(wù)器獲取數(shù)據(jù)。不過,POST 方法不會緩存數(shù)據(jù),并且常用于連同請求一起發(fā)送數(shù)據(jù)。
1.get是把參數(shù)數(shù)據(jù)隊列加到提交表單的ACTION屬性所指的URL中,值和表單內(nèi)各個字段一一對應(yīng),在URL中可以看到。post是通過HTTP post機制,將表單內(nèi)各個字段與其內(nèi)容放置在HTML HEADER內(nèi)一起傳送到ACTION屬性所指的URL地址。用戶看不到這個過程。
2.對于get方式,服務(wù)器端用Request.QueryString獲取變量的值,對于post方式,服務(wù)器端用Request.Form獲取提交的數(shù)據(jù)。兩種方式的參數(shù)都可以用Request來獲得。
3.get傳送的數(shù)據(jù)量較小,不能大于2KB。post傳送的數(shù)據(jù)量較大,一般被默認為不受限制。但理論上,因服務(wù)器的不同而異。
4.get安全性非常低,post安全性較高。
5.<form method="get" action="a.asp?b=b">跟<form method="get" action="a.asp">是一樣的,也就是說,method為get時action頁面后邊帶的參數(shù)列表會被忽視;而<form method="post" action="a.asp?b=b">跟<form method="post" action="a.asp">是不一樣的。
JQeury的3種實現(xiàn)方式
1.?$.ajax(?) 語法:$.ajax({鍵值對});
2.??$.get():發(fā)送get請求:語法:$.get(url, [data], [callback], [type])
url:請求路徑
Data:請求參數(shù),即?發(fā)送的數(shù)據(jù) ?{key:value}形式 ,
Callback:成功時的回調(diào)函數(shù) function(result){} ?result 后臺返回的數(shù)據(jù) ?,
Type:響應(yīng)結(jié)果的類型:?返回的數(shù)據(jù)類型 ?默認為 text ,可以設(shè)為 json text
3. $.post():發(fā)送post請求?:* 語法:$.post(url, [data], [callback], [type])
通過jQuery發(fā)送ajax請求,在代碼和使用上談?wù)刾ost和get的區(qū)別:
jQuery get() 和 post() 方法用于通過 HTTP GET 或 POST 請求從服務(wù)器請求數(shù)據(jù)。?
代碼區(qū)別
1.?get 方式 發(fā)送請求?語法:?$.get(url,data,callback,type);
url:請求路徑
Data:請求參數(shù),即?發(fā)送的數(shù)據(jù)??{key:value}形式 ,
Callback:成功時的回調(diào)函數(shù)?function(result){} ?result 后臺返回的數(shù)據(jù) ?,
Type:響應(yīng)結(jié)果的類型:?返回的數(shù)據(jù)類型??默認為?text ,可以設(shè)為 json text
2.?post 方式 發(fā)送請求?語法: $.post(url,data,callback,type);
$.get()方法:?使用GET方式執(zhí)行Ajax請求,從服務(wù)器加載數(shù)據(jù)。形式:$.get(url, data, func, dataType)
$.post()方法:使用POST方式執(zhí)行Ajax請求,從服務(wù)器加載數(shù)據(jù)。形式:$.post(url, data, func, dataType);
可選參數(shù):
1)url:鏈接地址,字符串表示
2)data:需要發(fā)送到服務(wù)器的數(shù)據(jù),格式為{A: '...', B: '...'}
3)func:請求成功后,服務(wù)器回調(diào)的函數(shù);function(data, status, xhr),其中data為服務(wù)器回傳的數(shù)據(jù),status為響應(yīng)狀態(tài),xhr為XMLHttpRequest
4)dataType:服務(wù)器返回數(shù)據(jù)的格式
2.Ajax的Get和Post的使用區(qū)別:
總結(jié):
1)GET方式?傳送數(shù)據(jù)量小,安全性低,會被緩存,處理效率高,而post是將參數(shù)放在請求的表單體內(nèi)
2)在向服務(wù)器傳參數(shù)時,get是將參數(shù)直接添加到url后面;而post是將參數(shù)放在請求的表單體內(nèi)
3)當請求無副作用時(如進行搜索),便可用GET方法;當請求有副作用時(如添加數(shù)據(jù)行),則用POST方法。post適合大量數(shù)據(jù)(不受url長度限制)和需要安全的數(shù)據(jù)傳輸(傳輸?shù)臄?shù)據(jù)不會在url上出現(xiàn))?
使用post發(fā)送請求注意設(shè)置,post默認發(fā)送方式是application/x-www-form-urlencoded這個就是content-type請求頭類型,如果不指定可能請求會失敗application/x-ww
get請求和post請求在服務(wù)器端的區(qū)別:
在客戶端使用get請求時,服務(wù)器端使用Request.QueryString來獲取參數(shù),
而客戶端使用post請求時,服務(wù)器端使用Request.Form來獲取參數(shù).?
??1.Get方式
?? 用get方式可傳送簡單數(shù)據(jù),但大小一般限制在1KB下,數(shù)據(jù)追加到url中發(fā)送(http的header傳送),也就是說,瀏覽器將各個表單字段元素及其數(shù)據(jù)按照URL參數(shù)的格式附加在請求行中的資源路徑后面。另外最重要的一點是,它會被客戶端的瀏覽器緩存起來,那么,別人就可以從瀏覽器的歷史記錄中,讀取到此客戶的數(shù)據(jù),比如帳號和密碼等。因此,在某些情況下,get方法會帶來嚴重的安全性問題。
總結(jié):GET請求方式:URL傳值的方式進行請求,一般大小限制在1KB(最多只能是1024字節(jié))以下,這個數(shù)據(jù)會被瀏覽器緩存起來,所以賬號密碼用戶ID肯定是不能這樣傳遞(暴露不安全)
Ajax發(fā)送請求:如果是get請求send(參數(shù))參數(shù):必須是null或xhr.send();
get請求就不必要設(shè)置 xhr.setRequestHeader(header,value)
備注:如果xhr.send(參數(shù));參數(shù)不為空情況下,在某些瀏覽器中會自動轉(zhuǎn)換成post請求方式 您可以通過request.getMethod();方法獲取請求的方式
使用get方式需要注意
????? ????? (1)對于get請求(或凡涉及到url傳遞參數(shù)的),被傳遞的參數(shù)都要先經(jīng)(預(yù)編碼處理)encodeURIComponent方法處理.
例:var url = "update.php?username=" +encodeURIComponent(username) + "&content=" +encodeURIComponent(content)+"&id=1" ;
2.Post方式:
?? ????? 當使用POST方式時,瀏覽器把各表單字段元素及其數(shù)據(jù)作為HTTP消息????? 的實體內(nèi)容發(fā)送給Web服務(wù)器,而不是作為URL地址的參數(shù)進行傳遞,使用? POST方式傳遞的數(shù)據(jù)量要比使用GET方式傳送的數(shù)據(jù)量大的多
總結(jié):POST請求方式:一般用于發(fā)送表單(input這樣的form表單)數(shù)據(jù),安全性比get高,數(shù)據(jù)量也大而且不會被瀏覽器緩存
發(fā)送請求:如果是post請求send(參數(shù))參數(shù):參數(shù)可以是null或者xhr.send()|send(帶有參數(shù)的)post請求在傳遞值的情況下必須 設(shè)置 ?? ????? xhr.setRequestHeader(header,value)
應(yīng)用場景:
總結(jié):
1)當請求無副作用時(如進行搜索),便可使用get方法;當請求有副作用時(如添加數(shù)據(jù)行),則用POST方法。
2)如果調(diào)用是要檢索服務(wù)器上的數(shù)據(jù)則使用GET。如果要檢索的值會隨時間和更新進程的改變而改變則要在GET調(diào)用中添加一個當前時間參數(shù),這樣后面的調(diào)用才不會使用先前的不正確的緩沖。
??如果調(diào)用是向服務(wù)器發(fā)送任意數(shù)據(jù),就可以使用POST。POST用于創(chuàng)建資源,資源的內(nèi)容會被編入HTTP請示的內(nèi)容中。例如,處理訂貨表單、在數(shù)據(jù)庫中加入新數(shù)據(jù)行等。
GET方法應(yīng)用場景:
* 請求是為了查找資源,HTML表單數(shù)據(jù)僅用來幫助搜索。
* 請求結(jié)果無持續(xù)性的副作用。
* 收集的數(shù)據(jù)及HTML表單內(nèi)的輸入字段名稱的總長不超過1024個字符。
GET 請求的其他一些注釋:
·?GET 請求可被緩存
·?GET 請求保留在瀏覽器歷史記錄中
·?GET 請求可被收藏為書簽
·?GET 請求不應(yīng)在處理敏感數(shù)據(jù)時使用
·?GET 請求有長度限制
·?GET 請求只應(yīng)當用于取回數(shù)據(jù)
POST方法應(yīng)用場景:
* 請求的結(jié)果有持續(xù)性的副作用,例如,數(shù)據(jù)庫內(nèi)添加新的數(shù)據(jù)行。
* 若使用GET方法,則表單上收集的數(shù)據(jù)可能讓URL過長。
* 要傳送的數(shù)據(jù)不是采用7位的ASCII編碼。
POST 請求的其他一些注釋:
·?POST 請求不會被緩存
·?POST 請求不會保留在瀏覽器歷史記錄中
·?POST 不能被收藏為書簽
·?POST 請求對數(shù)據(jù)長度沒有要求
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機、免備案服務(wù)器”等云主機租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。
分享名稱:Ajax請求的原理get及post方法和get,post請求方式的區(qū)別-創(chuàng)新互聯(lián)
網(wǎng)頁網(wǎng)址:http://jinyejixie.com/article32/ghosc.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供全網(wǎng)營銷推廣、軟件開發(fā)、商城網(wǎng)站、面包屑導航、品牌網(wǎng)站制作、虛擬主機
聲明:本網(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)