Ajax JSON简介

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

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有两种方式

  1. eval
  2. 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]);
            }
        }
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值