AJAX中的请求方式以及同步异步的区别
| var EnParam = encodeURIComponent(param); |
URL只支持大約2K的長(zhǎng)度,即2048字符數(shù);使用GET進(jìn)行AJAX請(qǐng)求時(shí)候會(huì)緩存導(dǎo)致出現(xiàn)的頁(yè)面不是正確的,一般方法加random參數(shù)值;ajax.send(null)。
POST
向服務(wù)器提交數(shù)據(jù)用到。
需要將form表單中的值先取出轉(zhuǎn)換成字符串,用&符號(hào)連接,(同GET傳參數(shù)一樣);提交數(shù)據(jù)量2GB ;使用ajax.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded'),處理提交的字符串;ajax.send(strings),這個(gè)strings表示form中需要提交的內(nèi)容,例如a=1&b=2類似這樣的字符串。
?
同步與異步:
ajax.open方法中,第3個(gè)參數(shù)是設(shè)同步或者異步。prototype等js類庫(kù)一般都默認(rèn)為異步,即設(shè)為true。先說(shuō)下同步的情況下,js會(huì)等待請(qǐng)求返回,獲取status。不需要onreadystatechange事件處理函數(shù)。而異步則需要onreadystatechange事件處理,且值為4再正確處理下面的內(nèi)容。
(注:文中的 ajax 表示XMLHTTP請(qǐng)求對(duì)象。)
?
?
?1?//同步傳輸模式?2?
?3?function?RequestByGet(nProducttemp,nCountrytemp)
?4?{
?5?????var?xmlhttp
?6?
?7?????if?(window.XMLHttpRequest)??
?8?????{??
?9??????????//isIE???=???false;??
10??????????xmlhttp???=???new???XMLHttpRequest();??
11?????}??
12?????else?if?(window.ActiveXObject)
13?????{??
14??????????//isIE???=???true;??
15??????????xmlhttp???=???new???ActiveXObject("Microsoft.XMLHTTP");??
16?????}
17??????????????????
18?????//Web?page?location.
19?????var?URL="http://www.baidu.com/;
20?????xmlhttp.open("GET",URL,?false);
21?????//xmlhttp.SetRequestHeader("Content-Type","text/html;?charset=Shift_JIS")
22?????xmlhttp.send(null);
23?????var?result?=?xmlhttp.status;
24????
25?????//OK
26?????if(result==200)
27?????{
28?????????document.getElementById("div_RightBarBody").innerHTML=xmlhttp.responseText;
29?????}
30?????xmlhttp?=?null;
31?}
32?
33?
34?//異步傳輸模式
35?var?xmlhttp
36?
37?function?RequestByGet(nProducttemp,nCountrytemp)
38?{
39?????if?(window.XMLHttpRequest)??
40?????{??
41??????????//isIE???=???false;??
42??????????xmlhttp???=???new???XMLHttpRequest();??
43?????}??
44?????else?if?(window.ActiveXObject)
45?????{??
46??????????//isIE???=???true;??
47??????????xmlhttp???=???new???ActiveXObject("Microsoft.XMLHTTP");??
48?????}
49??????????????????
50?????//Web?page?location.
51?????var?URL="http://www.baidu.com/";
52?????xmlhttp.open("GET",URL,?true);
53?????xmlhttp.onreadystatechange?=?handleResponse;
54?????//xmlhttp.SetRequestHeader("Content-Type","text/html;?charset=UTF-8")
55?????xmlhttp.send(null);??
56?}
57?
58?function?handleResponse()
59?{
60?????if(xmlhttp.readyState?==?4?&&?xmlhttp.status==200)
61?????{
62?????????document.getElementById("div_RightBarBody").innerHTML=xmlhttp.responseText;
63?????????xmlhttp?=?null;
64?????}
65?}
66?
?
?
轉(zhuǎn)載于:https://www.cnblogs.com/liunx/archive/2010/08/06/1793954.html
總結(jié)
以上是生活随笔為你收集整理的AJAX中的请求方式以及同步异步的区别的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 实践中整理出tomcat集群和负载均衡
- 下一篇: 微服务架构案例(02):业务架构设计,系