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