在現在Web的開發中,界面友好和性能越來越成為一個網頁的好壞的評判標准,對於實現界面無刷新(局部刷新)請求和簡單傳輸數據與服務器交互,我想來談談一下技術
這篇博文是我對Ajax和Json的總結,在這裡講解了基本運用和簡介,大家通過這些學習可以結合開發運用到實戰當中去
AJAX(asynchronous Javascript XML)異步的javascript與xml
核心對象 :XMLHttpRequest 對象
Ajax准備向服務器發送請求:xmlHttpRequest.open("get(提交)","url",true(是否是異步提交))
Different with firefox:
IE中如果設置了xmlHttpRequest.send("get","url",false);//當第三個參數為false時,那麼在浏覽器上實現的是同步
Firefox中如果第三個參數為false時,不會調用回調函數,注冊根本就不會調用,也就是firefox不會執行false的同步操作
base program:
var req;
function createXmlHttpRequest(){
if(window.ActionXObject){// IE browse
req=new ActionXObject("MicrosoftXMLHTTP");
}
else{//firefox等其他浏覽器
req=new XMLHttpRequest();
}
}
//send ajax message request to server 發送ajax消息請求給服務器
function ajaxSend(url,getMsg){
//解決IE中如果URL提交地址不改變,IE不會對用戶操作進行請求提交的處理
url=url+"&"+Math.random();
//解決中文地址亂碼問題
url=windowm.encodeURI(url);
//需要進行兩次轉碼
url=window.encodeURI(url);
//create ajax kernel object 創建ajax核心對象
createHttpRequest();
//ajax call-back function 回調函數
req.onreadystatechange=function(){
if(req.readystate==4){//准備完成
if(req.status==200){
//回調處理
var s=req.responseText();
getMsg(s);
}
}
}
}
req.open("get",url,true/false); //true synchronize false asynchronous
req.send(null);//可以發送消息數據,也可以為null
---------------------JSON
JSON:javascript Object notation(標記法)
json是一種輕量級的數據交換格式,json采用了完全獨立於語言的文本格式
基本結構:名稱/值 對的集合
值的有序列表,大部分語言中稱為array數組
Json名/值的表示
example:名/值
{"sharme",:"123yao"} //注意實際上這裡比等效的村文本占用更多的空間
var sharme={"sharneName":"sharmeYao","sharmePwd":"123yao"};
var name=sharme.sharmeName;//獲取值
example:array
String str=["person1":{"name":"sharme","sex":"man'},"person2":{"name":"jdss","sex":"man"}];//通過" , "逗號來區別每一個數組對象
數據快速訪問: str[0].name 通過這種簡單的方式對json數據格式進行訪問
修改數據同樣簡單: str[0].sex="woman"
JSON文本數據和對象的轉換
將對象轉換為JSON文本數據
String jsonString=people.toJSONString();
注意:可以將任何javascript中的對象轉換為json文本數據
數據注意:數組是值的有序集合,一個數組以“'[”(左中括號)開始,“]”(右中括號)結束,值之間使用“,”(逗號)分隔
值類型可以使:string / number /true /false /null /對象 或者數組,並且這些都可以進行嵌套
對於AJAX和JSON的討論就到這裡把,當然我相信這些僅僅是基於AJAX和JSON的講解,對於AJAX和JSON的深度分析我會在下次和大家再進行討論