一起谈.NET技术,Ajax和WEB服务数据格式:自定义返回格式

简介:   这是这一系列的最后一篇文章了,前面我们讲到了XML,SOAP,HTM格式和第二部分的JSON和JSONP。现在我们来看看自定义数据格式。  最佳的数据传输格式应该是使用最少的传输量表达最需要的数据。

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

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

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

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

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

 
 
// convert custom data to an array of JavaScript objects
function ParseBookData(ajaxdata) {
var book = [], bookData = ajaxdata.split( " \n " ), bookItem;
for ( var b = 0 , bl = bookData.length; b < bl; b ++ ) {
bookItem
= bookData[b].split( " ; " );
book[b]
= {
title: bookItem[
0 ],
url: bookItem[
1 ],
author: bookItem[
2 ],
publisher: bookItem[
3 ],
price: {
amount: parseFloat(bookItem[
4 ]),
currency: bookItem[
5 ]
}
};
}
return book;
}
var book = ParseBookData(xhr.responseText);
alert(book[
0 ].title); // first book title
alert(book[ 1 ].url); // second book URL

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

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

  1、很轻量级的数据,传输比较快。
  2、在服务器端,不需要额外的东西就能很快很方便生成。
  3、用这种格式构造恶意代码就很困难了。

  当然也有他的不好处:

  1、对于那种格式不一定的数据就不太方便了。比如,我们的书籍信息由可选的PDF的下载链接和下载价格,这样的话,处理的程序逻辑就比较复杂了。
  2、你的服务可能比使用JSON和XML更加受到限制,如果你是自己在使用这个服务,那么问题不大,如果考虑到第三方使用的话,就不方便了。
  3、需要为每一种的数据格式写处理的函数。
  4、这样的数据可读性就比较差了。
  5、还要确定分隔符不会出现在数据中间。需要在读取的时候就做一些处理。

  看看前面的文章:

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

  希望这一系列的文章对于大家认识Ajax的数据格式有一些帮助。

目录
相关文章
|
小程序 前端开发 中间件
ThinkPHP 配置跨域请求,使用TP的内置跨域类配置,小程序和web网页跨域请求的区别及格式说明
本文介绍了如何在ThinkPHP框架中配置跨域请求,使用了TP内置的跨域类`\think\middleware\AllowCrossDomain::class`。文章还讨论了小程序和web网页在跨域请求格式上的区别,并提供了解决方案,包括修改跨域中间件源码以支持`Origin`和`token`。此外,还介绍了微信小程序跨域请求的示例和web网页前端发送Axios跨域请求的请求拦截器配置。
ThinkPHP 配置跨域请求,使用TP的内置跨域类配置,小程序和web网页跨域请求的区别及格式说明
|
XML 前端开发 JavaScript
PHP与Ajax在Web开发中的交互技术。PHP作为服务器端脚本语言,处理数据和业务逻辑
本文深入探讨了PHP与Ajax在Web开发中的交互技术。PHP作为服务器端脚本语言,处理数据和业务逻辑;Ajax则通过异步请求实现页面无刷新更新。文中详细介绍了两者的工作原理、数据传输格式选择、具体实现方法及实际应用案例,如实时数据更新、表单验证与提交、动态加载内容等。同时,针对跨域问题、数据安全与性能优化提出了建议。总结指出,PHP与Ajax的结合能显著提升Web应用的效率和用户体验。
381 3
|
前端开发 API 开发者
Python Web开发者必看!AJAX、Fetch API实战技巧,让前后端交互如丝般顺滑!
在Web开发中,前后端的高效交互是提升用户体验的关键。本文通过一个基于Flask框架的博客系统实战案例,详细介绍了如何使用AJAX和Fetch API实现不刷新页面查看评论的功能。从后端路由设置到前端请求处理,全面展示了这两种技术的应用技巧,帮助Python Web开发者提升项目质量和开发效率。
395 1
|
前端开发 API 开发者
从零到精通,AJAX与Fetch API让你的Python Web前后端交互无所不能!
从零到精通,AJAX与Fetch API让你的Python Web前后端交互无所不能!
241 3
|
前端开发 JavaScript API
惊呆了!学会AJAX与Fetch API,你的Python Web项目瞬间高大上!
在Web开发领域,AJAX与Fetch API是提升交互体验的关键技术。AJAX(Asynchronous JavaScript and XML)作为异步通信的先驱,通过XMLHttpRequest对象实现了局部页面更新,提升了应用流畅度。Fetch API则以更现代、简洁的方式处理HTTP请求,基于Promises提供了丰富的功能。当与Python Web框架(如Django、Flask)结合时,这两者能显著增强应用的响应速度和用户体验,使项目更加高效、高大上。
268 2
|
开发者 前端开发 Apache
Apache Wicket Ajax揭秘:轻松几步,让你的Web应用告别“呆板”,焕发新生!
【8月更文挑战第31天】随着互联网技术的发展,Web应用的交互性成为评价网站成功的关键指标。Apache Wicket作为一款卓越的Java Web框架,不仅具备强大的组件化开发能力,还内置了对Ajax技术的支持,使开发者能轻松提升Web应用的交互体验。通过简单的代码示例展示了如何在不刷新页面的情况下异步更新页面元素,极大提升了用户体验。Wicket提供了多种Ajax组件和行为,如AjaxFallbackLink、AjaxButton等,满足不同场景需求,并支持自定义Ajax行为,帮助开发者实现复杂交互效果。合理运用Wicket的Ajax功能,可显著增强网站竞争力。
331 1
|
前端开发 API 数据格式
颠覆传统!AJAX、Fetch API与Python后端,开启Web开发新篇章!
在Web开发领域,技术的快速迭代推动着应用不断进化。传统前后端交互方式已无法满足现代Web应用对高效、实时性和用户体验的需求。AJAX作为异步通信的先驱,使页面无需刷新即可更新部分内容,显著提升用户体验;尽管XML曾是其主要数据格式,但如今JSON已成为主流。Fetch API则以其简洁、灵活的特点成为AJAX的现代替代品,基于Promises的异步请求让开发更加高效。与此同时,Python后端凭借高效稳定和丰富的库支持,成为众多开发者的首选,无论是轻量级的Flask还是全功能的Django,都能为Web应用提供强大的支撑。
247 0
|
XML 前端开发 API
惊艳全场的秘诀!AJAX、Fetch API与Python后端,打造令人惊叹的Web应用!
惊艳全场的秘诀!AJAX、Fetch API与Python后端,打造令人惊叹的Web应用!
284 0
|
前端开发 Java UED
告别页面刷新时代:Struts 2 Ajax技术揭秘,轻松实现动态加载,Web应用焕然一新!
【8月更文挑战第31天】在Web应用开发中,用户体验至关重要。为减少页面刷新带来的不适,Ajax技术应运而生。Struts 2作为流行的Java EE框架,通过内置的Ajax支持简化了无刷新页面动态加载的实现。本文通过对比传统请求响应模式,展示了Struts 2如何轻松实现Ajax功能,提升了用户体验和开发效率,并灵活地实现了数据交换。然而,使用Ajax时还需注意SEO和跨域请求等局限性。
224 0