JQuery + JSON作为前后台数据交换格式实践
JQuery + JSON作为前后台数据交换
JQuery提供良好的异步加载接口AJAX,可以局部更新页面数据,
http://api.jquery.com/category/ajax/
JSON作为一种轻量数据格式,被浏览器js引擎普遍支持,同xml格式。
使用AJAX+JSON数据格式来实现动态页面,有以下好处:
1、 松耦合, 页面HTML和数据彻底分离, 即表示层 和 数据层分开, 有利前台样式定制。 不同于以往后台脚本嵌套HTML标签,并输出数据到标签的合适位置, 来实现动态页面,表示和数据搅合在一起。
2、 支持与RPC对接, 对于各种业务RPC(类似web service)可以整合到一个页面上展示和配置, 例如一个个人网站页面上, 显示的天气数据来自气象部门, 日历中待办事项和存储事项, 都是通过JSON数据格式与中华万年历网站交互的。
3、 充分利用了JSON格式好处, 层次化描述数据, 相比form表单提交的x-www-form-urlencode格式的数据要强的多。
4、 AJAX带来和好处, 可以局部更新页面, 不用form表单整体提交, 导致整个页面重载。
JSON前后台交互示例
前台文件client.html完全有html js书写,不包含任何PHP语法, 其实现功能,将一个json字符串, 通过ajax发送后后台(server.php), 后台将受到的json字符串原封不动再输出到http响应中, 此时前台ajax的success事件之前, ajax客户端收到响应的JSON字符串,然后将其转换为JSON对象, 再调用success事件, 在事件处理函数中, 可以访问此对象。
前台文件 client.html
<html>
<head>
<script type="text/javascript" src="./jquery.js"></script>
<style> </style>
</head>
<body>
<h1>hello world!</h1> <script type='text/javascript'> // 这里要使用拼接好的JOSN字符串
var data = '{ "classCode": "cellphone", "city": "GuangDong" }';
$.ajax({
type: "POST",
url: "/jsonServer.php", // data sent is json
contentType: "application/json; charset=utf-8",
// Post 方式,data参数不能为空"",
//如果不传参数,也要写成"{}",否则contentType将不能附加在Request Headers中。
data: data, // data in response will expected json
dataType: "json",
anysc: false,
success: function (result) {
$("h1").text(result.city)
},
error: function (XMLHttpRequest, textStatus, errorThrown) {
alert(errorThrown + ':' + textStatus); // 错误处理
}
});
</script>
</body>
</html>
后台文件 server.php
<?php
// 将客户端发送的JSON数据原样发送回去
//"{symbol:'IBM', price:120}";
echo $HTTP_RAW_POST_DATA;
?>
JQuery + JSON作为前后台数据交换格式实践的更多相关文章
- JQuery + XML作为前后台数据交换格式实践
JQuery + xml作为前后台数据交换 JQuery提供良好的异步加载接口AJAX,可以局部更新页面数据, http://api.jquery.com/category/ajax/ xml作为一种 ...
- 二维码与json都是数据交换格式
二维码与json都是数据交换格式: UI数据是人机数据交换格式.
- XML和JSON两种数据交换格式的比较
在web开发领域,主要的数据交换格式有XML和JSON,对于在 Ajax开发中,是选择XML还是JSON,一直存在着争议,个人还是比较倾向于JSON的.一般都输出Json不输出xml,原因就是因为 x ...
- 【学习】006数据交换格式与SpringIOC底层实现
课程目标 XML和JSON Java反射机制 手写SpringIOC 什么是数据交换格式 客户端与服务器常用数据交换格式xml.json.html 数据交换格式用场景 移动端(安卓.IOS)通讯方式采 ...
- 2016/4/2 json:js和jquery中轻量级数据交换格式 例: 窗口弹出 popwindow
JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式.它基于ECMAScript的一个子集. JSON采用完全独立于语言的文本格式,但是也使用了类似于C语言家族 ...
- json:js和jquery中轻量级数据交换格式
JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式.它基于ECMAScript的一个子集. JSON采用完全独立于语言的文本格式,但是也使用了类似于C语言家族 ...
- 数据交换格式之 - Json
Json简介: JSON是JavaScript对象表示法,是一种与语言无关的数据交换的格式,是一种完全独立于语言的文本格式. 使用ajax进行前后台数据交换,移动端与服务端的数据交换. web客户端和 ...
- 在.NET使用JSON作为数据交换格式
原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://zhoufoxcn.blog.51cto.com/792419/517093 我们 ...
- json 数据交换格式与java
http://wiki.mbalib.com/wiki/数据交换 数据交换是指为了满足不同信息系统之间数据资源的共享需要,依据一定的原则,采取相应的技术,实现不同信息系统之间数据资源共享的过程. 数据 ...
随机推荐
- How to crack gbooks
Damn cnblogs, no auto saving set by default, even worse than csdn, can't believe it, lost half an ho ...
- 【BZOJ】1975: [Sdoi2010]魔法猪学院
题意 \(n(2 \le n \le 5000)\)个点,找尽量多的不同\(1\)到\(n\)的路径,每一次的花费就是路径的全值和,要求在费用不超过\(E\)的情况下路径最多. 分析 裸的最段路. 题 ...
- 【BZOJ】1998: [Hnoi2010]Fsk物品调度
http://www.lydsy.com/JudgeOnline/problem.php?id=1998 题意: 给你6个整数$n,s,q,p,m,d$. 有$n$个位置和$n-1$个盒子,位置编号从 ...
- URAL 1287. Mars Canals
题目链接 这题挺水,看懂了,就OK.卡了几下内存,还是卡过了. #include <iostream> #include <cstdio> #include <cstri ...
- 学习PHP第一天-----简单登录
<!DOCTYPE html> <html> <head> <title>初级登录界面</title> </head> < ...
- nodeType的返回
<p id="one" title="one_one">one_one_one</p> 1.用getElementById var o ...
- JAVA代码实现下载单个文件,和下载打包文件
//下载单个文件调用方法 /** * response * imgPath 下载图片地址 * fileName 保存下载文件名称 * @date 2015年4月14日 下午 ...
- C++静态成员和静态成员函数
一:静态数据成员: 类体中的数据成员的声明前加上static关键字,该数据成员就成为了该类的静态数据成员.和其他数据成员一样,静态数据成员也遵守public/protected/private访问规则 ...
- sublime3+quick智能提示
sublime3+quick智能提示 1. 安装PackegeControl 下载 https://sublime.wbond.net/Package%20Control.sublime-packag ...
- oracle空间管理
表空间:组织数据文件的一种途径, 是一个逻辑概念 包含有 表,字段,索引 一个数据库可以对应多个表空间 一个物理文件对应一个表空间 任何一个数据库创建的第一一个表空间是 system Tables ...