在现在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的深度分析我会在下次和大家再进行讨论