利用 Ajax和 JSON 技术实现对数据库 的异步操作
张春 建
摘 要 : 主 要 讲 解 在 ASP.NET 下 基 -yg.户 端 编 程 模 型 ,利 用 Ajax与 JSON 技 术 实现 操 作 数 据 库 的
编 程 方 法与 实现过 程 ,并 通过 实例 详 细讲 述 了对 数据 库 添加 、查 询 和更新 操 作 。
关 键 词 :Ajax;JSON ; XM LHttpRequest
1 概 述
并 向 服 务 器 发 送 请 求 ;第 三 步 是 Web服 务 器 接 收 请 求 ,并 对
请求 进 行 解 析 处 理 ;第 四步 根 据 请 求 ,访 问 相 关 数 据 ,并 对 数
在 B/S系 统 中 ,ASP.NET ajax客 户 端 编 程 模 型 代 表 着 当前
据 进 行 格 式 处 理 ,第 五 步 响 应 客 户 端 请 求 ,将 格 式 化 后 的数 据
Web开 发 及 发 展 方 向 .其 实 质 是 将 服 务 器 与 客 户端 之 问 的 数 据
发 送 给 客 户 端 ;第 六 步 客户 端 收 到 数 据 ,交 由 回调 函数 进 行 解
传 递 更 加 简 捷 ,把 服 务 器 承 担 的 表 示 层 作 交 给 客 户 端 完 成 .
析 及 后 续 处 理 工 作 。
这 不 仪使 B 系 统 架 构 更 加 清 晰 合 理 .而 且 大 大提 升 服 务 器 及
2.2 JSO N
整 个 瓦 联 网络 带 宽 的有 效 利 用 率 ,同 时 带 给 用 户 是 更加 快 捷 灵
JSON 即 JavaScript对 象 表 示 法 ,是 一 种 轻 量 级 的 数 据 交 换
动 的 W 体 验 。
2 关 键 技 术
2.1 Ajax客 户端 编 程模 型
格 式 ,JSON是 JavaScript编 程 语 言 的 一 个 子 集 。 其 易 于 阅读 和
编 写 , 同 时 也 易 于 机 器 解 析 和 生 成 。JSON理 想 的 数 据 交 换 特
性 使 得 一 些 组 织 在 不 断 的 丰 富 其 操 作 库 ,如 json2.js及 jquery.
js,在 下 面 的 实 例 中就 用 到 了 json2.js,并 对 jquery.js做 了简 要
Ajax认 为 是 Asynchronous JavaScript and XML的 缩 写 ,但 其
介 绍 。
涵 盖 的技 术 不 仪 包 括 JavaScript和 XML,还 包 括 CSS、DOM 和
2-2.1数 据 格 式
XMLHttpRequest等 技 术 ,闰 内 将 Ajax译 为 “阿 贾 克 斯 ”, 而 最
JSON 数 据 格 式 是 使 用 “f、}、 [、】、:”、,” 这 些 符 号 将
早 提 出这 个 词的 是 Jesse James Garrett ajax客 户端 编程 模 型 是
JSON 数 据 进 行 分 割 表 示 ,使 数 据 组 织 成 一 种 有 序 结 构 ,其 详
相 对 于 服 务 端 编 程 模 型 提 出 的 ,其 主 要 区 别 就 是 将 表 示 层 放 到
细 语 法 请 参 见 www.json.org网 站 ,在 此 不 再 赘 述 。JSON典 型 数
客 户 端 ,服 务 器 只 负 责 处 理 数 据 。不 再 理 睬 如 何 显 示 或 使 用 这
据 格 式 如 下 :
些 数 据 ,这 样 给 客 户 端 更 加 灵 活 的表 现 形 式 。
Var obj=
{IIpeople”: ““peopleid”:”1II,”firstname :“米 克 ”,‘last-
nam e :” 王 “, “em ail“: ”mike@sina.com” , phone?
13066552314”,”address“: 北 京 东 城 区 西 路 23 号 ”,“post-
code :“1 00034 ),{”peopleid”:“2”。“firstname“: 大 志 ,‘last-
nam e“:” 王 ”, ”email“: ”dazhi@sina.corn , phone。:。
13933448314”,”address :”石 家 庄 中 山 西 路 88 号 “, post-
code”: 050000“ )】):
2_2_2访 问 方 式
I
l
-I Web服务器
I
5
Ⅺ僵肺
2 ‘ I6
I—
r
l同调两数 l
l
callback()l
l
事件onclick }
l数据库 l
、--- _ __一,
访 问 JSON 数 据 极 为 简 单 、清 晰 ,可 以 直 接 用 “.”或 用
“”引 用 ,对 于 多 行 数 据 可 以按 数 组 进 行 访 问 ,示 例 如 下 :
客 户端
服务器
obj.people[0].firstname: “米 克 ”:
obj.people[0][“firstname”l= “米 克 ”
alert(obj.people[0].firstname);
图 1 Ajax客 户 端 编 程 模 型
在 JavaScript中 使 用 可 使 用 eval() 和 stringify() 实 现
ax客 户 端 编 程模 型 与 服 务 器 交 互 过 干旱一 般 分 为 6步 :第
JSON 字 符 串与 对 象 之 间 的 转 换 。在 C# 中使 用 JavaScriptSeria1.
一 步 由 产 生 网 页 事 件 ;第 二 步 创 建 XMLHttpRequest对 象 实 例
izer类 实 现 JSON 字符 串 与 对 象 的 转 换 ,C#对 象 的属 性 名 称 要