13.3 Ajax请求
Ajax请求发生在需要与数据库(因此也跟服务器)通信的时候。比如,在需要保存wiki一次修订的时候触发Ajax请求。修订包含4个方面的信息:
l wiki页面的标题:命名wiki页面的常规约定是使用一种大小写混合的方案,它由首字母大写的单词构成。比如,wiki的主页可以命名为HomePage.
l 修订的作者名称:修订内容的用户可以选择留下他们的名字。但是,如果不愿意具名的话也允许他们匿名(这是大部分wiki一个十分流行的特性)。
l 修订的真正内容:用户输入的条目文本有可能很长。内容由Textile——一套流行的文本格式器,来负责格式化。
l 修订的精确时间:这由客户端生成并(但愿)用作唯一的标识符。因为时间精确到毫秒级,这就足以满足这个应用程序的需求了。
应用这部分知识,现在你可以构造一个发送到数据库的请求了。一个保存修订所需要代码的简单版本如代码清单13-1所示。
代码清单13-1 保存客户端数据到服务器端数据库的代码
// 把修订插入到数据库中
sqlExec(
// 一段查询语句,但它的真实代码保存在服务器上
"insert",
[
document.title, // wiki条目的标题
$("#author").val(), // 用户提供的作者值
$("#text").val(), // 修订的文本
(new Date()).getTime() // 修订的精确时间
],
// 重新载入修订的列表,一旦查询完毕
reload
);
在sqlExec函数的背后,你需要准备好SQL查询(之后就会转换为CGI查询字符串)、构建请求的URL并发起Ajax请求。你可以使用jQuery的Ajax功能将它们结合起来,它能用于处理HTTP POST请求(发送长的修订文本需要使用POST请求)。你会在13.5节中看到最终的Ajax请求。
已经向服务器发送了请求,接下来你需要了解服务器端代码是如何处理数据库查询的。






