没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
掌握 Ajax,第 8 部分: 在请求和响应中使用 XML
Ajax 客户机/服务器通信可以很巧妙
在本系列的上一篇文章中,您看到了应用程序如何以格式化发往服务器的请求。
还了解了为什么这在大多数情况下并不是一个好主意。这篇文章主要探讨在大多数情况下
确实是好主意的一种做法:向客户机返回响应。
我其实并不喜欢写那种主要告诉您什么不应该做的文章。很多时候,那都会是一篇非常愚
蠢的文章。我要在前半篇文章中解释某些东西,然后在后半篇文章中说明使用您刚刚才学
会的那种技术是一个多么糟糕的主意。在很大程度上,上一期文章正是这样一种情况(如
果您错过了那一期文章,请查看参考资料中的链接),那篇文章教您如何将 作为
应用程序的请求数据格式使用。
但愿这篇文章能够弥补您花费在学习请求上的时间。在应用程序中,使用
作为发送数据的格式的理由很少,但使服务器向客户机回发的理由很多。因此,您在
上一篇文章中学到的关于的知识最终将在这篇文章中体现出某些价值。
服务器(有时)不能响应太多的请求
在深入钻研从服务器获取响应的技术之前,您需要理解,为什么说使服务器发送
来响应请求是一个好主意(以及这与客户机发送请求不同的原因所在)。
客户机以名称值对发送请求
回忆一下上一篇文章,就会知道,在大多数情况下,客户机不需要使用 ,因为他们会
使用名称值对发送请求。因此,您可能会发送一个这样的名称:。只需简单
地在连续的名称值对之间添加一个“与”符号(),即可将其放在一起,就像这样:
。使用简单的文本和这些名称值对,客户机即可轻松向服务器
请求多个值。很少需要用到提供的额外结构(及其带来的额外开销)。
实际上,需要向服务器发送的所有理由都差不多可以归入以下两个基本的类别中:
服务器仅接受请求。在这类情况下,您别无选择。上一期文章中介绍的基础知识应已
使您掌握了发送此类请求所必需的工具。
您正在调用一个仅接受或请求的远程。这实际上就是上一种情况的特例,但
值得单独拿出来提一下。如果您希望在一个异步请求中使用来自 或的
,就会有一些特殊的考虑事项。在下一期的文章中,我将介绍这些考虑事项,还会给出
一些向发送此类请求的示例。
服务器无法(以一种标准方式)发送名称值对
在您发送名称值对时, 浏览器会发送请求,平台会响应该请求,并承载一个服务器程
序,配合它将那些名称值对转换成服务器程序可以轻松处理的数据。实际上,每一种服务
器端技术——从!"™"到#、再到、$%&$——都允许您调用多种方
法来根据名称获取值。因此,获取属性只是小事一桩。
这 种 情 况 并 不 会 将 我 们 引 向 另 外 一 个 方 向 。 如 果 服 务 器 使 用 字 符 串
应答一个应用程序,客户机没有任何标准化的简便方法来将每
个对拆分成名称和值。您必须手动解析所返回的数据。如果服务器返回一个由名称 值对构
成的响应,这样的响应的解释难度与使用分号、竖线或其他任何非标准格式化字符相同。
给我一点空间!
在绝大多数#''请求中,转义序列()*用于表示一个空格,文本 “"'+,-
”将以"()*'+,()*-()*的形式通过#''发送。
对于您来说,这就意味没有任何简单的方法在响应中使用纯文本、使客户机以一种标准的
方法获取并解释响应,至少在响应包含多个值时是如此。假设您的服务器只是要发回数字
.),那么纯文本是很好的选择。但如果服务器要一次性发回电视剧 ,和-
的近期收视率又该怎么办呢?尽管可以选择许多种方法来使用纯文本发送这一响应(清单
/给出了一些示例),但没有一种是不需客户机进行某些处理的极其简单的方法,也没有
一种是标准化的方法。
清单/0收视率的服务器响应(不同版本)
+123045+12/.0)5+1()*-260/
304/.0)()*-60/
530455/.0)5()*-560/
尽管不难找到拆分这些响应字符串的方法,但客户机将不得不根据分号、等号、竖线和与
符号解析并拆分这些字符串。这不是编写使其他开发人员能够轻松理解和维护的健壮代码
的方法。
进入
意识到没有任何标准的方法可以使服务器使用名称 值对响应客户机之后,使用的原
因也就显而易见了。向客户机发送数据时,名称值对是非常好的选择,因为服务器和服务
器端语言可以轻松解释名称值对;向客户机返回数据时使用也是如此。在本系列前
几期的文章中,您已经看到了利用-来解析,在后续的文章中,还会看到!7怎
样提供了解析的另一种选择。在所有这一切之上,您可以将作为纯文本处理,并
以这种方式获取其值。因此,有几种方法可从服务器获得响应,并使用较为标准的代
码提取数据,在客户机中使用这些数据。
还有一个额外的好处,非常易于理解。比如说,大多数编写程序的人都能理解清单)
中的数据。
剩余10页未读,继续阅读
资源评论
weixin_38737213
- 粉丝: 1
- 资源: 977
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功