Javascript s08
AJAX
?
-------------------------
AJAX 指異步 JavaScript 及 XML(Asynchronous JavaScript And XML)。
舉例!
異步是發(fā)短信,同步是打電話.
異步的時(shí)候,會(huì)有回調(diào).
?
想用JS去服務(wù)器拿數(shù)據(jù)?
客戶端的JS.所以沒(méi)有能力去服務(wù)器拿信息
借用服務(wù)端的PHP,JS模擬一個(gè)$_GET請(qǐng)求,之后它的局部就變了.
?
請(qǐng)求與響應(yīng).
???????? 請(qǐng)求:request
???????? 相應(yīng):response
???????? 相應(yīng)出來(lái)的為字符串.
???????? eval()????????????????? 把字符串當(dāng)js代碼執(zhí)行
?
1.HTTP返回狀態(tài)碼(響應(yīng))
???????? 1XX??????????? 臨時(shí)響應(yīng)
???????? 2XX??????????? 成功
?????????????????? 200 OK? 訪問(wèn)成功
????????
???????? 3XX??????????? 重定向
?????????????????? 301:永久重定向
?????????????????? http:***/article/3359.html??????
??????????????????????????? article/([\d]*)\.html
?????????????????? http:***/article/3359.html??????
??????????????????
?????????????????? 302:臨時(shí)重定向
??????????????????
?????????????????? 304 Not Modified (沒(méi)有修改)緩存
????????
???????? 4XX??????????? 請(qǐng)求錯(cuò)誤
?????????????????? 404??????????? 網(wǎng)頁(yè)不存在
????????
???????? 5XX??????????? 服務(wù)器錯(cuò)誤
??????????????????
?
2.AJAX從服務(wù)器拿東西
???????? 三個(gè)方法
???????? 四個(gè)屬性
???????? 回調(diào)函數(shù)沒(méi)有內(nèi)容
????????
???????? a.創(chuàng)造對(duì)象
?????????????????? var xmlhttp=new XMLHttpRequers();
?????????????????? alert(xmlhttp);
??????????????????
?????????????????? IE6
?????????????????? new ActiveXObject("Microshoft.XMLHTTP")
????????
???????? b.準(zhǔn)備(打開(kāi))
???????? 類似與打開(kāi)瀏覽器,并填上URL
???????? xmlhttp.open("GET","02.php",true);
??????????????????????????? //最后一個(gè)true參數(shù),表示同意使用異步請(qǐng)求,false是同步
???????????????????????????
???????? c.準(zhǔn)備一個(gè)函數(shù)(讓對(duì)象具備處理響應(yīng)的能力,短信發(fā)送的處理)??????
???????? //在改變狀態(tài)的時(shí)候就會(huì)回來(lái)調(diào)用這個(gè)函數(shù)
???????? xmlhttp.onreadystatechange=function(){
?????????????????? if(xmlhttp.readyState==4 && xmlhttp.status==200){
??????????????????????????? var result=xmlhttp.responseText
???????????????????????????
??????????????????????????? document.getElementById
?????????????????? }
???????? }
????????
????????
???????? d.發(fā)送
???????? xmlhttp.send();
???????? //等發(fā)送的時(shí)候才調(diào)用函數(shù).
???????? //關(guān)心的狀態(tài),1.發(fā)送成功的狀態(tài),或發(fā)送失敗的狀態(tài)
???????????????????????????????????? ?2.接受信息的狀態(tài)
???????????????????????????????????? ?
???????? e.????? 準(zhǔn)備數(shù)據(jù)??????????????????
?
3.如何用POST
?
???????? 1.xmlhttp.open("POST","ajax_test.asp",true);//打開(kāi)為POST
???????? 2.xmlhttp.setRequestHeader("Content-type","application/x-www-form-urlencoded");
???????? 3.xmlhttp.send("fname=Bill&lname=Gates");//記得編碼問(wèn)題 escape()
???????? PHP會(huì)自動(dòng)解釋編碼的問(wèn)題
????????
????????
4.同步的效果
???????? a.創(chuàng)造對(duì)象
?????????????????? var xmlhttp=new XMLHttpRequers();
?????????????????? alert(xmlhttp);
??????????????????
?????????????????? IE6
?????????????????? new ActiveXObject("Microshoft.XMLHTTP")
????????
???????? b.xmlhttp.open("GET","02.php",false); //最后一個(gè)參數(shù)為false就是同步
????????
????????
???????? c.不需要回調(diào)函數(shù)了.
????????
???????? d.發(fā)送 xmlhttp.send();
????????
???????? e.把函數(shù)的判斷直接放外面去
???????? 判斷返回結(jié)果,是1還是0,決定用戶是否可以注冊(cè)???
????????
????????
5.die 的時(shí)候你要是字符串? 而不是數(shù)字?
???????????????????????????
??????????????????
總結(jié)
以上是生活随笔為你收集整理的Javascript s08的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: LDA-Latent Dirichlet
- 下一篇: 排列与组合的Java递归实现 (参考)