Ajax不是一种编程语言,是一种无需重新加载整个网页的情况下能够更新部分网页的技术。全称即是Asynchronous JavaScript and xml(异步的JavaScript和XML)
传统的网页(即没有用Ajax)想要更新一个内容或者提交一个表单,就要重新载入页面。
使用ajax的网页通过在后台跟服务器进行少量的数据交换,网页就可以实现异步局部更新。
ajax出现以前,比如提交一个大型表单,里面要填很多数据,同步就可能出现以下情况,比如写完以后提交然后就告诉你邮箱地址没填,你找到邮箱地址填写后再次提交告诉你电话没写,写完后告诉你用户名已拥有等等,就这样往复了好几回,如果是一个大型表单就会很麻烦,浪费了大量的时间和效率。直到Ajax的出现,就会发现如果邮箱地址没有填写就会在旁边提示,填写完邮箱地址就发送到服务器,在这过程中还是可以填写其他的内容,页面的操作和服务器端之间的操作互相之间不会造成堵塞,现在网站账号的注册都是这样。
XMLHttpRequest的出现,才使网页同步的局面转换为异步。利用XMLHttpRequest用于后台与服务器交换数据且不重新加载页面对网页进行部分更新。
JSON:JavaScript对象表示法(JavaScript Object Notation)
JSON是存储和交换文本信息的语法,类似XML。它采用键值对的方式来组织,易于人们阅读和编写,同时也易于机器解析和生成。
JSON是独立语言的,也就是说不管什么语言,都可以解析JSON,只需要按照JSON的规则来写就行。
书写规则:名称:键值 比如:name:”郭靖” 名称写不写引号都行,但是值对如果是字符串必须写引号。
值对也可以是数字,字符串(在双引号中),逻辑值(true或者false),数字(在方括号中),对象(在花括号中),null等
解析JSON有两种方式
- eval
- JSON.parse
推荐用第二种,eval不会分析数据语法,而JSON.parse会去分析数据语法错误。这里注意,如果是JSON字符串,是要解析的,转化为JSON对象,但是如果本来就是JSON对象,就不需要再解析了。
推荐用JSONLint进行json在线验证
普通字符串,json字符串和json对象的区别。
字符串:这个很好解释,指使用“”双引号或’’单引号包括的字符。例如:var comStr = ‘this is string’;
json字符串:指的是符合json格式要求的js字符串。例如:var jsonStr = “{StudentID:’100’,Name:’tmac’,Hometown:’usa’}”;
json对象:指符合json格式要求的js对象。例如:var jsonObj = { StudentID: “100”, Name: “tmac”, Hometown: “usa” };
JSON是JS的一个子集,所以可以在JS中轻松地读,写JSON。读和写JSON都有两种方法,分别是利用”.”操作符和“[key]”的方式。
var obj = {
1: "value1",
"2": "value2",
count: 3,
person: [ //数组结构JSON对象,可以嵌套使用
{
id: 1,
name: "张三"
},
{
id: 2,
name: "李四"
}
],
object: { //对象结构JSON对象
id: 1,
msg: "对象里的对象"
}
};
从JSON中读数据
function ReadJSON() {
alert(obj.1); //会报语法错误,可以用alert(obj["1"]);说明数字最好不要做关键字
alert(obj.2); //同上
alert(obj.person[0].name); //或者alert(obj.person[0]["name"])
alert(obj.object.msg); //或者alert(obj.object["msg"])
}
向JSON中写数据
function Add() {
//往JSON对象中增加了一条记录
obj.sex= "男" //或者obj["sex"]="男"
}
修改JSON中的数据
function Update() {
obj.count = 10; //或obj["count"]=10
}
删除JSON中的数据
function Delete() {
delete obj.count;
}
遍历JSON对象
function Traversal() {
for (var c in obj) {
console.log(c + ":", obj[c]);
}
}

本文详细介绍了Ajax技术的概念及其工作原理,对比传统网页更新方式,Ajax能够实现在不重新加载整个页面的情况下更新部分内容,极大提升了用户体验。文章还介绍了XMLHttpRequest在Ajax中的作用及JSON数据格式的应用。
773

被折叠的 条评论
为什么被折叠?



