Ajax、REST和Template这几种技术在现实Web中的应用

Jesse James Garrett 2005 年明确提出了 Ajax 的概念,无疑对 web 客户端的展现效果产生了巨大的革新,对 Template 整页刷新技术形成了巨大的挑战,也为客户端展现逻辑和服务端逻辑分离开启了曙光。REST 的风格则为服务端程序的利用 URL 的天然特性进行了分布服务化,并将之前的事务型 Controller(一个 action 对应一个操作)的服务端逻辑模型拆散成资源性逻辑。这两个技术概念则为客户端展现逻辑和服务端逻辑的彻底分离奠定了基础。

在没有 Ajax 之前,客户端与服务端交互技术普遍采用的是 Template 整页刷新技术。客户端每次提交数据到服务端,服务端进行事务处理之后,都会进行 Template 整页刷新。之前客户操作引起的界面展现模型状态是需要传递到后台,否则就无法给用户界面操作以连贯性的支持。如果页面的展现状态不是很繁复多变的情况下,Template 整页刷新交互方式问题不大。但在如今这个特别强调">人机交互的时代里,这种方法在设计上来说是会造成界面展现逻辑和应用逻辑层层次不清,在工作量上来说也增加了不少传递界面展现模型的重复逻辑。Ajax 交互则不然,它可以在维持当前界面状态的同时,往服务端提交数据,服务端应用逻辑处理完之后,将处理结果返回,客户端按照处理结果,进行客户端的界面的改变。明显的,维持界面状态连贯性的工作就被省却了,服务端代码可以只需关注商业逻辑即可,层次也变得清晰起来。

按照这种思路 ,客户端逻辑维持展现,服务端只提供对 model 的操作,等于之前的服务端展现逻辑被移植到客户端去,这涉及到展现逻辑的语言使用 Java 语言变成了 JavaScript 语言。这种变化对于提出概念的人说,可能也只是一种语言的转换,可从实际的编程角度来说,从有着丰富 lib 支持的静态语言 Java 到 JavaScript 这缺乏完整函数库支持的动态语言,是一个巨大的鸿沟。JavaScript 以前只被作为一种简单的界面表现以及验错的语言(部分得导致其内涵完全被低估)一下子无法承受起支撑整个展现逻辑的重任。更为重要的是,培养一个 JavaScript 程序员的成本非常高。也许 AJAX+REST 这种设计对代码是整体最优的,但从项目管理开发人员资源分配来说,成本更为低廉 (JavaScript 开发人员少,而要其懂业务逻辑成本就更大了 )。

但事物正在慢慢地变化,JS 的框架层出不穷的涌现,prototype、Dojo、Ext JS、jQuery 等让代码大为简化 , 这个因素开始慢慢弱化。现在应用 REST+Ajax 架构的技术难度也越来越小了。

还有一个产业发展的因素,现在不再只是浏览器才能访问 web 网站了,还有许多如移动设备 app 根本就不需要 HTML 的展现形式,一个是费流量,另一个是展现是客户端控件完成,不需要 HTML 给其以做渲染指导。

在外部和内部共同作用下,这种架构的发展结果导致未来有这种可能性:所谓的 web 服务端程序就是一堆 Web service, 然后客户端就第一次下载一堆基本的网页结构到本地,然后每次在本地网页上去运行 JS 去组织调用 Web service 得到数据进行用户输入处理和返回数据的页面渲染。由于网页在本地运行,其安全级别较高,可以访问很多本地资源,功能会很强大(如 chrome 的 extension)。

但仍然有此 Ajax( 交互方式)+REST 模型解决不了的问题:

从应用场景来说,当需要从一个应用场景跳转到另一个完全不同的应用场景,界面状态的保留就不是必要的;而且在跳转后往往需要渲染大量的展现数据和相应控件的结构代码(HTML),这时 Template 整页刷新的优势就体现出来,劣势也得到了避免。

从性能上考虑,一个复杂的事务型逻辑操作从逻辑上来说可以拆散成多个资源性操作,但这必然导致交互的增加和性能下降。

从架构风格的适用性考虑,REST 是以资源 +CRUD 的方式看待世界,那的确在信息化系统中大多数场景都是围绕这个主题,但也有部分逻辑确实是事务性很强(相当于 job),比如以 excel 形式导入大量的数据到数据库,涉及许多对象的创建,包含删除(覆盖导入),修改等,那此时使用 REST 就未必适宜。

所以综合考虑是将 Ajax+REST 和 Template 整页刷新综合 应用于各业务场景,从各业务场景的不同来应用。

时间: 2024-09-23 05:17:27

Ajax、REST和Template这几种技术在现实Web中的应用的相关文章

优化技术在现实系统中的运用

数据库系统是管理信息系统的核心,基于数据库的联机事务处理(OLTP)以及联机分析处理(OLAP)是银行.企业.政府等部门最为重要的计算机应用之一.从大多数系统的应用实例来看,查询操作在各种数据库操作中所占据的比重最大,而查询操作所基于的SELECT语句在SQL语句中又是代价最大的语句.举例来说,如果数据的量积累到一定的程度,比如一个银行的账户数据库表信息积累到上百万甚至上千万条记录,全表扫描一次往往需要数十分钟,甚至数小时.如果采用比全表扫描更好的查询策略,往往可以使查询时间降为几分钟,由此可见

使用AJAX技术开发新一代Web应用程序

ajax|web|程序 一.引言 一个理想的用户接口对用户最好是不可见的-仅在用户需要时提供选择,否则并不干涉他们的工作而让其专注于手头的工作.然而,这并不是一件容易的事情.如今,我们变得习惯于通过并不十分令人满意的UI进行日常工作,直到有人向我们展示一种更好的方法. 现在,我们才逐渐认识到我们当前的方法在做这些事情时是多么吃力. 由于用于显示文档内容的基本web浏览器技术又被推进一步进而超出以前它们所能及的范围,所以,如今的互联网正在经历着这样的实现. Ajax(异步JavaScript+XM

使用AJAX技术开发新一代Web应用程序(5)

ajax|web|程序 这种客户端方式已经根深蒂固于过去十多年间的每天的商业互联网之中.友好的WYSIWYG web创作工具把我们的站点可视化为一个页面集合.服务器端web框架把这种页面间的转换建模为状态转换图.经典web应用程序,在页面刷新时,与不可避免的缺乏响应紧密结合,不可能容易地求助于异步处理器解决方案. 但是Amazon基于其网站已经取得了商业上的成功.当然,经典web应用程序不可能象那样不可用?为了理解为什么web页面可以适合于Amazon而不适用于每个人,我们应该考虑一下使用模式的

使用AJAX技术开发新一代Web应用程序(1)

ajax|web|程序 一.引言 一个理想的用户接口对用户最好是不可见的-仅在用户需要时提供选择,否则并不干涉他们的工作而让其专注于手头的工作.然而,这并不是一件容易的事情.如今,我们变得习惯于通过并不十分令人满意的UI进行日常工作,直到有人向我们展示一种更好的方法.现在,我们才逐渐认识到我们当前的方法在做这些事情时是多么吃力. 由于用于显示文档内容的基本web浏览器技术又被推进一步进而超出以前它们所能及的范围,所以,如今的互联网正在经历着这样的实现. Ajax(异步JavaScript+XML

干净的组织有序的网页内容布局的8种技术

内容组织可能对于任何好的网页设计都是最重要和最有影响力的方面.把信息组织在一个构造精美的布局里是一个网站的根基, 应该在考虑风格设计之前弄清楚. 如果没有一个好的布局, 网站看起来好像没有正确地流向,没有连接方式. 在这篇文章中, 我们将讨论八种有用的布局解决方案和技术, 这些将有助你创建一个干净的组织有序的内容布局. 这八种技术包括sliders (滑动器), tabs(选项卡), progressive layout (前进式布局), structured grids(结构化网格), mod

初见Ajax——javascript访问DOM的三种访问方式

最近好啰嗦 最近在一间小公司实习,写一些小东西.小公司嘛,人们都说在小公司要什么都写的.果真是. 前端,后台,无论是HTML,CSS,JavaScript还是XML,Java,都要自己全包了.还好前台的要求不高.写一些芝麻豆腐的东西还是不在话下的.但是整个项目下来估计还不止这些要写.而且我的经验当中,都没怎么关心过前端的东西,一直认为这是和我无关的东西,这次估计要悲剧了.所以找了一本书来看--<Ajax实战>.临时抱佛脚,临阵磨枪,也不能说是完全没有用处的.相比没怎么写过Java的人,我还是觉

AJAX开发技术在PHP开发中的简单应用技巧_AJAX相关

[AJAX介绍] Ajax是使用客户端脚本与Web服务器交换数据的Web应用开发方法.Web页面不用打断交互流程进行重新加裁,就可以动态地更新.使用Ajax,用户可以创建接近本地桌面应用的直接.高可用.更丰富.更动态的Web用户界面. 异步JavaScript和XML(AJAX)不是什么新技术,而是使用几种现有技术--包括级联样式表(CSS).JavaScript. XHTML.XML和可扩展样式语言转换(XSLT),开发外观及操作类似桌面软件的Web应用软件. [AJAX执行原理] 一个Aja

AJAX开发技术在PHP开发中的简单应用技巧

[AJAX介绍] Ajax是使用客户端脚本与Web服务器交换数据的Web应用开发方法.Web页面不用打断交互流程进行重新加裁,就可以动态地更新.使用Ajax,用户可以创建接近本地桌面应用的直接.高可用.更丰富.更动态的Web用户界面. 异步JavaScript和XML(AJAX)不是什么新技术,而是使用几种现有技术--包括级联样式表(CSS).JavaScript. XHTML.XML和可扩展样式语言转换(XSLT),开发外观及操作类似桌面软件的Web应用软件. [AJAX执行原理] 一个Aja

ASP、JSP、PHP 三种技术比较

js|比较|js 目前,最常用的三种动态网页语言有ASP(Active Server Pages),JSP(JavaServer Pages),PHP (Hypertext Preprocessor). 简 介 ASP全名Active Server Pages,是一个WEB服务器端的开发环境,利用它可以产生和执行动态的.互动的.高性能的WEB服务应用程序.ASP采用脚本语言VBScript(Java script)作为自己的开发语言. PHP是一种跨平台的服务器端的嵌入式脚本语言.它大量地借用C