论坛首页 Web前端技术论坛

REST+RIA方案

浏览 34204 次
锁定老帖子 主题:REST+RIA方案
该帖已经被评为良好帖
作者 正文
   发表时间:2007-07-23  
to treenode:
是我没有看清楚,抱歉。

其实我也很看好Rails+Flex的开发模式。国外已经有相关的图书,国内的出版社已经确定引进此类图书。

不过Ajax也会成长为一种成熟的RIA技术。Ajax+REST+Rails或者Flex+REST+Rails,它们从架构上来看是很相似的,不过就是在开发效率有所差别。可以肯定DHH在客户端还是会首选Ajax技术。Rails 2.0肯定会提供相关的支持,极大地减轻Ajax+REST+Rails这类应用开发的难度。所以两种开发模式我其实都很看好。
0 请登录后投票
   发表时间:2007-07-23  
weiqingfei 写道


我对flash不熟悉,但是我记得flash也可以实现lazy load的方式,也就是把组件分离,只有在需要的时候,才去请求服务器,没有必要一次性把所有的组件都load进来。

普通页面,也可以把所有组件都放在一个页面上,当然设计的时候如何摆放,那是设计者的事情,为了设计方便,他完全可以顺序向下摆放,在显示这些组件的时候,会对它的位置进行控制的。

我实在看不出,设计者对这个有什么可以抱怨的。



你说的是Flex中的RSL技术,这种技术的确可以做到迟加载,但是我发现对于并非很复杂的应用这种技术不如不用,为什么呢?
因为应用的SWF本身和RSL都要支持Flash的技术结构,这样的结果是两者加起来的体积比单个SWF还要大,且必须分两次下载。如果两者的版本不同的话,还会出现一些难以跟踪的问题。RSL类似于Windows的DLL或Linux的.so,
好处只有在许多SWF文件引用同一个RSL的时候才能体现出来,但是在实践上这种场景并不多见。

这个问题我就说得更具体一点吧:depot应用中,“浏览货品列表”,“购物车”和“结帐”是三个独立的页面。如果你把这些都放到一个页面里面会怎么样?就算编程方便,但是美工会愿意让你这么做吗?
0 请登录后投票
   发表时间:2007-07-23  
dlee 写道
to treenode:
是我没有看清楚,抱歉。

其实我也很看好Rails+Flex的开发模式。国外已经有相关的图书,国内的出版社已经确定引进此类图书。

不过Ajax也会成长为一种成熟的RIA技术。Ajax+REST+Rails或者Flex+REST+Rails,它们从架构上来看是很相似的,不过就是在开发效率有所差别。可以肯定DHH在客户端还是会首选Ajax技术。Rails 2.0肯定会提供相关的支持,极大地减轻Ajax+REST+Rails这类应用开发的难度。所以两种开发模式我其实都很看好。




我觉得ROR目前对Ajax的支持已经可以说接近完美了。不过在做这个例子的时候我也遇到过一个问题,购物车无论如何无法更新,花了将近半个小时去检查代码还是发现不了任何问题,最后重启一下服务器就好了!可见Ajax的开发效率已经不是问题,但跟踪调试还是需要小心的。

客观的说,我对Javascript是有点感冒,原因不为别的,我在2001~2002做了将近两年HTML开发,那段时间给我的回忆实在太痛苦了。JS在IE和NN里面的表现完全就是水火不容。尽管我也明白现在Javascript不论是浏览器还是工具支持都已经今非昔比,但对这个东西我无论如何也很难再提起兴趣,如果不是ROR能够让我基本上不用写JS的话,那么我大概早就掉头而去了。
0 请登录后投票
   发表时间:2007-07-23  
rails 为什么不直接支持put delete而要通过post变通实现了?
0 请登录后投票
   发表时间:2007-07-23  
treenode 写道
我觉得ROR目前对Ajax的支持已经可以说接近完美了。不过在做这个例子的时候我也遇到过一个问题,购物车无论如何无法更新,花了将近半个小时去检查代码还是发现不了任何问题,最后重启一下服务器就好了!可见Ajax的开发效率已经不是问题,但跟踪调试还是需要小心的。

对,目前对Ajax支持最好,开发效率最高的框架就是Rails。Java的所有Web开发框架对Ajax的支持都不好,包括宣称可以完美支持Ajax的国内某JSF厂商的产品,DWR和GWT这些框架对Ajax的支持级别也不如Rails的RJS(同时学习成本还要高很多)。你说的那个情况我在学习的时候也遇到了,似乎是在初次为非Ajax应用添加Ajax功能时,必须要重新启动WEBrick服务器,不过这只是个小问题。

Ajax的意义主要有两方面,一方面是通过精心设计的Widget组件改善了用户的交互体验,另一方面是通过各种Web Remoting技术(XMLHttpRequest、IFrame、ScriptIO、etc.)与服务器交互,可以建造以往基于HTML表单的交互方式很难建造的一些软件架构,从而获得性能和可伸缩性更好的Web应用。REST就是其中的一种架构,也是最好的一种架构(当然准确地说,REST其实是一种架构风格而非一种具体的架构)。其实正是Ajax应用使得REST架构风格得到了广泛的关注,其他的各种RIA技术的应用也可以而且应该遵循REST架构风格来建造。

相关内容可以参考《Ajax模式与最佳实践》,这本书是一本REST架构设计很好的书籍。不过这本书最大的问题是没有将这些最佳实践固化在某个开发框架中,使得开发效率无法得到有效地提升。这个工作,现在正在由Rails等REST开发框架来完成。

与绝大多数Java Web开发框架单纯从服务器端的角度(或者更加局限,单纯从服务器端Web表现层的角度)来考虑问题不同,Rails考虑问题是从一个完整Web应用的整体架构的角度出发的。涵盖了客户端和服务器端的各种技术,它不光是一个服务器端的full stack的开发框架,它还是一个包括了客户端技术的更加full stack的开发框架。正因为它一直是从整体上考虑问题,所以它才能在开发效率上如此突出。
0 请登录后投票
   发表时间:2007-07-23  
angin 写道
rails 为什么不直接支持put delete而要通过post变通实现了?



rails是支持的,不能直接支持的是Flex。
0 请登录后投票
   发表时间:2007-07-23  
dlee 写道

相关内容可以参考《Ajax模式与最佳实践》



大概浏览过前几章,虽然内容不错,但是我个人认为现在就称“最佳实践”恐怕言之过早,呵呵。
作为参考还是很好的一本书。
0 请登录后投票
   发表时间:2007-07-23  
http://www.uncluttr.com/

具体什么技术到是无所谓。至于是否是ror,是否ajax还是java服务器,还是你提到的RIA,

我觉得ROR目前对Ajax的支持已经可以说接近完美了。
这类话很没意思啊!
如果你想不到你要的结果,那谈技术有什么用。
0 请登录后投票
   发表时间:2007-07-23  
treenode 写道
weiqingfei 写道


你使用swf,其实就是相当于所有的内容都在一个页面上。
把共享变量的所有内容都坐在同一个页面上有何不可?




我的回答是“未尝不可”。
这个问题本来就是在技术方案之间做比较的。我相信单个页面肯定可以做到,但好不好则是需要实际数字来说明的。
如果你能提供一个单页面的解决方案来说明问题,我也非常乐见其成。


我以前公司的商城就是ajax spa的方式。不过现在被改成类似你的flash模式了(汗)。也正是因为原来是ajax spa模式,才能很容易的切换到ria,因为server端完全不必修改任何代码。

之所以更换为flash,主要是两个原因,一个是我们最初的ajax实现的代码质量存在问题,垃圾代码贼多,还有一些bug,因此loading很慢,有时造成IE死机(瀑布汗),另一个是我们没有实现很多cool的效果,所以flash就看上去比较好。还有一个原因是,本来我有计划重新改造一版ajax的,但是遗憾的是我和另外一个主力前端js programmer先后离开了公司……
0 请登录后投票
   发表时间:2007-07-23  
treenode 写道

现在的问题是:使用Ajax技术,在客户端保存cart是否可行?如果可行,这种方案优缺点何在?

我希望这个帖子里讨论具体的技术方案。至于要不要对Ajax正本清源,请另开话题,好么?



当然可行。不仅是ajax,其他各种rwc/ria方案,几乎都会拿cart做例子。包括xforms也是。优点我就不介绍了,缺点的话,客户端cart本身是没有的,有缺点,那就是当前不成熟的ajax实践的缺陷。
0 请登录后投票
论坛首页 Web前端技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics