Ajax和WEB服务数据格式:自定义返回格式
创始人
2024-07-25 14:31:45
0

这是这一系列的最后一篇文章了,前面我们讲到了XML,SOAP,HTM格式和第二部分的JSON和JSONP。现在我们来看看自定义数据格式。

最佳的数据传输格式应该是使用最少的传输量表达最需要的数据。想想之前在XML和JSON中定义的书的数据。我们每一本书包含6条数据,所以我们可以简单的按照下面的格式来写:

  1. The Principles of Beautiful Web Design, 2nd Edition;
  2. http: Beaird;SitePoint;39.95;USD //www.sitepoint.com/books/design2/;Jason 
  3. jQuery: Novice to Ninja;
  4. http: Castledine & Craig Sharkie;SitePoint;29.95;USD //www.sitepoint.com/books/jquery1/;JEarle 
  5. Build Your Own Database Driven Website;
  6. http: Yank;SitePoint;39.95;USD//www.sitepoint.com/books/phpmysql4/;Kevin 

我们的数据现在看起来跟分号分隔的列表差不多了。我们使用回车来区分每一本书,通过分号来区分书中的每一项内容,这个分隔符必须谨慎的选择,不选择逗号因为可能书名中出现逗号。

跟JSON不同,对于自定义的数据格式,我们必须得自己来解析返回的字符串,不过这个通过JavaScript自带的split()方法可以轻松完成。下面的代码就是将我们自定义的数据格式转换成为JSON的:

  1. // convert custom data to an array of JavaScript objects  
  2. function ParseBookData(ajaxdata) {  
  3.     var book = [], bookData = ajaxdata.split("\n"), bookItem;  
  4.     for (var b=0, bl=bookData.length; b < bl; b++) {  
  5.         bookItem = bookData[b].split(";");  
  6.         book[b] = {  
  7.             title: bookItem[0],  
  8.             url: bookItem[1],  
  9.             author: bookItem[2],  
  10.              publisher: bookItem[3],  
  11.              price: {  
  12.                  amount: parseFloat(bookItem[4]),  
  13.                  currency: bookItem[5]  
  14.              }  
  15.          };  
  16.      }  
  17.      return book;  
  18. }  
  19. var book = ParseBookData(xhr.responseText);  
  20. alert(book[0].title); // first book title  
  21. alert(book[1].url); // second book URL 

JavaScript可以很快的处理这些数据–即使是一千本书的数据。大多数情况下,你会发现下载和处理数据的时间远小于同样的基于JSON的异步请求的时间。

自定义的数据格式有下面这些好处:

◆ 很轻量级的数据,传输比较快

◆ 在服务器端,不需要额外的东西就能很快很方便生成

◆ 用这种格式构造恶意代码就很困难了

当然也有他的不好处:

◆ 对于那种格式不一定的数据就不太方便了。比如,我们的书籍信息由可选的PDF的下载链接和下载价格,这样的话,处理的程序逻辑就比较复杂了

◆ 你的服务可能比使用JSON和XML更加受到限制,如果你是自己在使用这个服务,那么问题不大,如果考虑到第三方使用的话,就不方便了

◆ 需要为每一种的数据格式写处理的函数

◆ 这样的数据可读性就比较差了

◆ 还要确定分隔符不会出现在数据中间。需要在读取的时候就做一些处理

看看前面的文章:

Ajax和WEB服务数据格式:XML SOAP HTML

Ajax和WEB服务数据格式:JSON JSONP

原文来自:http://rockux.com/

【编辑推荐】

  1. 使用 jQuery 简化 Ajax 开发
  2. 用Dojo实现Ajax请求:XHR、跨域、及其他
  3. 盘点ASP.NET Ajax工具箱的10大顶级控件
  4. 简化开发流程 了解各种Ajax框架的适用性
  5. Ajax安全隐患将成站点定时炸弹

相关内容

热门资讯

如何允许远程连接到MySQL数... [[277004]]【51CTO.com快译】默认情况下,MySQL服务器仅侦听来自localhos...
如何利用交换机和端口设置来管理... 在网络管理中,总是有些人让管理员头疼。下面我们就将介绍一下一个网管员利用交换机以及端口设置等来进行D...
施耐德电气数据中心整体解决方案... 近日,全球能效管理专家施耐德电气正式启动大型体验活动“能效中国行——2012卡车巡展”,作为该活动的...
20个非常棒的扁平设计免费资源 Apple设备的平面图标PSD免费平板UI 平板UI套件24平图标Freen平板UI套件PSD径向平...
Windows恶意软件20年“... 在Windows的早期年代,病毒游走于系统之间,偶尔删除文件(但被删除的文件几乎都是可恢复的),并弹...
德国电信门户网站可实时显示全球... 德国电信周三推出一个门户网站,直观地实时提供其安装在全球各地的传感器网络检测到的网络攻击状况。该网站...
为啥国人偏爱 Mybatis,... 关于 SQL 和 ORM 的争论,永远都不会终止,我也一直在思考这个问题。昨天又跟群里的小伙伴进行...
《非诚勿扰》红人闫凤娇被曝厕所... 【51CTO.com 综合消息360安全专家提醒说,“闫凤娇”、“非诚勿扰”已经被黑客盯上成为了“木...