锁定老帖子 主题:REST+RIA方案
该帖已经被评为良好帖
|
|
---|---|
作者 | 正文 |
发表时间:2007-07-23
treenode 写道 从技术上讲,REST和RIA没有什么必然的联系,一个在服务端,一个在客户端。REST并没有要求客户端一定是什么,RIA也不是只能访问REST服务。
你确信REST只跟服务器有关系吗? 请把基础概念好好补一补吧。没有恶意,不要暴跳如雷。 |
|
返回顶楼 | |
发表时间:2007-07-23
weiqingfei 写道 你这样理解就有点儿不妥了,服务器端提供内容的颗粒度可大可小,大到整个页面,小到单纯的数据。 如果数据不需要更新,完全没必要去请求服务器。 可以完全按照你用flash来呈现的做法,使用js来呈现页面。 附加的一个好处是不局限于post,get,还可以使用其它方法。 当然缺点也很明显,用js来呈现页面,终归不如flash来的方便。 你的意思是说,服务器不必提供HTML片段,要更新的界面完全由js来呈现吗? 这样做的问题不仅是不方便,这样美工没法替你设计界面,必须要程序员把界面组件一个一个new出来才行了。 |
|
返回顶楼 | |
发表时间:2007-07-23
dlee 写道 为什么不可行?Ajax应用为什么不可以把状态保存在客户端呢?你了解Ajax吗?
前面已经说过了,我相信一定可以做到,但是好不好则需要实例来说话。 dlee 写道 你确信REST只跟服务器有关系吗? 请把基础概念好好补一补吧。没有恶意,不要暴跳如雷。 REST关注的是服务器提供何种形式的资源接口。我这样说可以吗?我只说过REST是在服务端,可不记得自己说过REST跟别的什么都没关系哦。 抓人语言里的把柄是很容易的,不过没什么意思。如果你乐意费心帮我看看这个例子里REST服务设计上有没有什么问题,我会更加欢迎的。 |
|
返回顶楼 | |
发表时间:2007-07-23
treenode 写道 weiqingfei 写道 你这样理解就有点儿不妥了,服务器端提供内容的颗粒度可大可小,大到整个页面,小到单纯的数据。 如果数据不需要更新,完全没必要去请求服务器。 可以完全按照你用flash来呈现的做法,使用js来呈现页面。 附加的一个好处是不局限于post,get,还可以使用其它方法。 当然缺点也很明显,用js来呈现页面,终归不如flash来的方便。 你的意思是说,服务器不必提供HTML片段,要更新的界面完全由js来呈现吗? 这样做的问题不仅是不方便,这样美工没法替你设计界面,必须要程序员把界面组件一个一个new出来才行了。 我说过了,你完全可以按照flash的呈现方法来呈现, 你的flash里的所有组件,美工是怎么设计的?你是怎么来控制显示,隐藏的?? js一样可以做到。 |
|
返回顶楼 | |
发表时间:2007-07-23
weiqingfei 写道 我说过了,你完全可以按照flash的呈现方法来呈现, 你的flash里的所有组件,美工是怎么设计的?你是怎么来控制显示,隐藏的?? js一样可以做到。 Flash把所有界面元素都包含在一个swf文件里,需要显示特定组件的时候一般是这几种办法:(1)将独立的部分单独做成组件;(2)使用state;(3)使用ViewStack。因为所有界面是一次性下载完成的,所以以后不必再请求服务器。 而一般网页应用要这么做的话,等于需要先放一个大的<div display="none">,然后需要的时候再显示出来。这种方式在设计上是很不方便的,页面比较大的话找起来也麻烦。一般的页面设计者大多倾向于使用独立的小页面。这样做的代价当然就是需要经常向服务器发送请求了。这和Flash的工作方式是完全不同的。 |
|
返回顶楼 | |
发表时间:2007-07-23
treenode 写道 如果你乐意费心帮我看看这个例子里REST服务设计上有没有什么问题,我会更加欢迎的。
你对REST的概念理解还需要加强。这个例子也是一个很好的例子。不过你的打击面太大,同时攻击非REST应用和Ajax,不是很明智。 以不同的方式重写depot应用是一个很好的练习。你少安毋躁,我在等ActiveResource的成熟。过一段时间,我会基于REST+ActiveResource+Ajax来重写这个depot应用。 |
|
返回顶楼 | |
发表时间:2007-07-23
to treenode:
另外你的代码量统计似乎没有包括Flex相关的代码量。我不是很了解Flex,请教一下,做Flex应用,是不是还需要写一些ActionScript的代码呢? Ajax+Rails:若JavaScript代码全部使用RJS自动生成,则不需要计算JavaScript的代码量。若通过其他方式手写JavaScript代码,则这部分代码量需要计算在内。 Flex+Rails:若ActionScript代码全部自动生成,则不需要计算ActionScript的代码量。若不能全部自动生成,则需要计算这部分代码量。 |
|
返回顶楼 | |
发表时间:2007-07-23
dlee 写道 不过你的打击面太大,同时攻击非REST应用和Ajax,不是很明智。 我写这篇文章就是为了做一个技术上的比较。写完以后我还反复看了几遍,为的就是小心不要带上任何有歧视性的字眼。 如果你说我的目的是为了攻击什么,那我实在无法认同。 对ActiveResource,我当然也有兴趣看看它将来会发展成什么样,我们一起拭目以待吧。 |
|
返回顶楼 | |
发表时间:2007-07-23
dlee 写道 to treenode:
另外你的代码量统计似乎没有包括Flex相关的代码量。我不是很了解Flex,请教一下,做Flex应用,是不是还需要写一些ActionScript的代码呢? Ajax+Rails:若JavaScript代码全部使用RJS自动生成,则不需要计算JavaScript的代码量。若通过其他方式手写JavaScript代码,则这部分代码量需要计算在内。 Flex+Rails:若ActionScript代码全部自动生成,则不需要计算ActionScript的代码量。若不能全部自动生成,则需要计算这部分代码量。 Flex的代码已经统计在内了。 方案二: Controllers(1个文件,37行) Models(3个文件,39行) Views(3个文件,15行) <=================以上是服务器部分的代码 MXMLs(3个文件,278行) ActionScripts(4个文件,142行) CSS(1个文件,76行) <=================以上是Flex代码 -------------------------------------------- 共计15个文件,587行 代码统计部分没有包括任何js在内,因为这两种方案都不需要自己写Javascript。 |
|
返回顶楼 | |
发表时间:2007-07-23
treenode 写道 weiqingfei 写道 我说过了,你完全可以按照flash的呈现方法来呈现, 你的flash里的所有组件,美工是怎么设计的?你是怎么来控制显示,隐藏的?? js一样可以做到。 Flash把所有界面元素都包含在一个swf文件里,需要显示特定组件的时候一般是这几种办法:(1)将独立的部分单独做成组件;(2)使用state;(3)使用ViewStack。因为所有界面是一次性下载完成的,所以以后不必再请求服务器。 而一般网页应用要这么做的话,等于需要先放一个大的<div display="none">,然后需要的时候再显示出来。这种方式在设计上是很不方便的,页面比较大的话找起来也麻烦。一般的页面设计者大多倾向于使用独立的小页面。这样做的代价当然就是需要经常向服务器发送请求了。这和Flash的工作方式是完全不同的。 我对flash不熟悉,但是我记得flash也可以实现lazy load的方式,也就是把组件分离,只有在需要的时候,才去请求服务器,没有必要一次性把所有的组件都load进来。 普通页面,也可以把所有组件都放在一个页面上,当然设计的时候如何摆放,那是设计者的事情,为了设计方便,他完全可以顺序向下摆放,在显示这些组件的时候,会对它的位置进行控制的。 我实在看不出,设计者对这个有什么可以抱怨的。 |
|
返回顶楼 | |