当前位置: 代码迷 >> Ajax >> REST,Ajax的无用性议论
  详细解决方案

REST,Ajax的无用性议论

热度:756   发布时间:2012-10-25 10:58:58.0
REST,Ajax的无用性讨论
REST要求,将后台的逻辑用ajax迁移到前台浏览器中完成,浏览器只通过特定的URI传递数据给后台服务端。
服务端也无需保存会话状态,从而减少服务端的消耗。我感觉真是开历史的倒车。

1,ajax,需要基于js的支持,而js是一种什么语言想必大家都有感觉。js离标准的程序语言相差颇大,现有的java程序员会js的肯定不在少数,而能把js用的如gmail般出神入化的,肯定是不会太多。

2,客户端浏览器,不见得就会支持js,例如以后的各种手机浏览器。

3,如果符合REST的方式,会话保持在浏览器,服务器端用不着去跟踪客户的会话,只提供数据,对于像亚马逊,淘宝这样的网站是不会接受的。用户习惯,消费记录,才是他们感兴趣,和进行分析的基础。

4,现在有一种趋势是觉得服务器端太重,想将逻辑迁移到浏览器,将所谓的ajax引擎进行本地缓存。说实话,我感觉不到这种所谓本地缓存有什么好处,马上都是光纤到户了,数据传递已经可以用忽略不计来考虑。借助服务器端的强大,而将浏览器变薄,才是应该做的。而不是反其道而行之。

ajax之流只是锦上添花,是非必要技术,富客户端可惜生不逢时,浏览器以后不会依赖于pc平台,而是更多的在各种手持设备上,在这些设备上js,ajax,都没太多用处,富客户端更是没什么用处,相反,回归到纯的html,将内容更好的显示,而不是那些无用的flash才是正道。

1 楼 cnpollux 2008-04-04  
flash在手持设备上怎么会无用呢。只要手持设备上安装flash虚拟机,富客户端照样会有用。
2 楼 wangcity 2008-04-04  
你除非为手持设备的小屏幕开发一个特殊版本的flash,并且还要人家安装flash插件--而且要能插入到手持设备的浏览器上,才可以用!

老实说,flash是垃圾,极其占用cpu资源,提供的信息量并不比纯html多多少,就是毫无意义的动来动去。

现在最炫的iphone也不支持flash,而且乔布斯明确表示,在没解决对性能,电池影响的情况下,iphone是不支持flash的。

看看微软,毫无疑问,他会不遗余力的绞杀flash,平台--无论pc或手持设备,微软都是大头,将应用依托于这么一种技术,是有相当风险的。

3 楼 chenyongxin 2008-04-04  
其实我很像说的一句话是:北京建这么多路,这么宽的路,为什么还会堵车?
  网络也是如此,并不是带宽大了就可以不用珍惜,这又令我想起了以前总是说我们地大物博的教育。
  曾经有很多人研究分布式算法,就是利用每一台联网的机器协作来运行一些复杂的算法,提高计算机的利用率。
  其实富客户端在某种程度上与他有异曲同工的妙用,网络毕竟是网络,当大批量用户同时访问服务器的时候它就无能为力了,相反高带宽可能会加速这种可能性,也就是说网络只是提高了我们交流的通道(ajax的使用是很有针对性的,剔出了很多无效的处理)。
4 楼 wangcity 2008-04-04  
网络快,还会堵车,并不是因为传统的http请求,而是因为p2p下载媒体文件。
而且这种趋势已经是网络速度比硬盘的存取速度更快,下载速度比看片的速度更快。

ajax对于提高用户使用体验有一定的帮助,但是,对于大规模转向ajax技术,是不对的。因为它对客户端要求更高了。使用js这种旁门左道,就像小偷一样,搞的好,可以偷到钱,搞的不好,会被人暴打一顿!你是愿意实实在在的去工作赚钱,还是愿意当小偷呢?

别忘记了gmail的快速度响应ajax只是一个方面,另外一个方面,是google拥有的全球数一数二的数据中心作为后台支持。光前台ajax,后台是贫弱的服务器,根本没用。

5 楼 chenyongxin 2008-04-04  
首先,js并不是旁门左道,你提到的微软没有用它,是因为js的功能并不是为c/s这样的构架提供的。
一个页面如果元素很多的话,本来用户只是为了获取某一个元素而像服务器提出请求,可它去要从新获取所有的信息来显示(排除使用缓存方式,wap是没有缓存机制的,除非用php来做,php是可以来提供这样的模板)。
  你说的网络速度比硬盘的存取速度,就不用富客户端了?搞清楚什么叫富客户端,并不是把某些东西存的硬盘里,本机调用才叫富客户端
6 楼 wangcity 2008-04-05  
js这种技术,严重依赖于客户端浏览器,而客户端是开发人员不可控制的。
你能保证你的客户端,一定用IE么,也许它用mozilla,opera,firefox,甚至是links,lynx,手机浏览器等。甚至干脆直接被客户端禁用掉。

js技术本身并不是一种设计良好的语言的,看起来极其不优雅,运行在客户端,占用客户端的cpu资源!难学,难用,难看,难调试!将功能依赖于这样一种先天不足,后天也补不上的技术上。是极其不明智的。

7 楼 wangcity 2008-04-05  
当用户只请求某个页面元素,而却需要刷新整个页面,看起来似乎是REST和ajax的用武之地,可实际情况是,ajax化后的刷新,依然依赖于网络传输速度和服务器端的处理速度。异步数据传输并不是灵丹妙药。

解决这个问题的办法,更应该是优化、减少不必要的页面元素,将一大堆不必要的页面元素放置在客户跟前--无论是整体刷新,还是局部刷新,都是会起到反效果的。

8 楼 kebo 2008-04-05  
ajax,rest就是垃圾,一点用都没有,你最好别用,不要费神想了,你有那时间还不如想更好的方式,但愿.....嘿嘿.
9 楼 yishh 2008-04-05  
wangcity 写道
js这种技术,严重依赖于客户端浏览器,而客户端是开发人员不可控制的。
你能保证你的客户端,一定用IE么,也许它用mozilla,opera,firefox,甚至是links,lynx,手机浏览器等。甚至干脆直接被客户端禁用掉。

js技术本身并不是一种设计良好的语言的,看起来极其不优雅,运行在客户端,占用客户端的cpu资源!难学,难用,难看,难调试!将功能依赖于这样一种先天不足,后天也补不上的技术上。是极其不明智的。



js什么地方惹到您老人家了啊......
您要真没用过,就别乱下评价。
10 楼 chenyongxin 2008-04-05  
js是非常强大的,并不像你说的那样。
曾经我们单位的管理系统就是用js编写的,速度很快,你说非常耗费cpu  呵呵 我想你根本就没有或者只知道js  所以,在你没有了解一项技术的前提下来批判他  是很不好的
希望你在了解了它以后实事求是的来进行评论
11 楼 moonranger 2008-04-05  
wangcity 写道
js这种技术,严重依赖于客户端浏览器,而客户端是开发人员不可控制的。
你能保证你的客户端,一定用IE么,也许它用mozilla,opera,firefox,甚至是links,lynx,手机浏览器等。甚至干脆直接被客户端禁用掉。

js技术本身并不是一种设计良好的语言的,看起来极其不优雅,运行在客户端,占用客户端的cpu资源!难学,难用,难看,难调试!将功能依赖于这样一种先天不足,后天也补不上的技术上。是极其不明智的。


你真的用过JS吗?这种批评根本站不住脚的,JS是一种标准的技术,问题在于这些浏览器厂商自己喜欢弄一套东西出来,而不兼容标准。说白了这也就是IE的问题而已,如果没有IE,你说的那些问题根本就不是问题。IE8正在开发中,据说也是完全符合标准的,等它出来了,相信情况会好很多。其实Ajax开发,大家用的都是一些JS库,其内部早已经解决了浏览器兼容性问题了,留给开发者自己解决的问题并不多。至于手持设备的浏览器,我不知道有多少人会用手机浏览JE,新浪之类的网站,但如果一个应用真的有大量的手持设备用户,那么它一定会专门定制一个适合浏览器的版本,比如校内就有手机版。就算没有Ajax,没有JS,拿手机看这些普通网站(除了iPhone这类极其强悍的智能手机以外)本来就是很“变态”的一件事。而且,现在的很多手机都已经有了相当强悍的浏览器,等3G时代来临,更是如此。

你把REST和Ajax强行放在一起讨论,更说明了你的无知。REST与Ajax没有什么关系。REST是一种服务端技术,是一种架构模式,也可以说是Web服务的一种架构而已,它与你用不用Ajax没有关系的,你也可以用Flash,或者用别的任何能处理HTTP协议的语言和平台来做“客户端”。REST的这种架构风格的真正威力就在这里,服务端丝毫不关心数据如何展示,仅仅关心业务的处理,它通过REST来提供服务,而客户端,无论使用什么开发,仅仅需要关心数据如何展示,如何与用户交互而已,其他的只需要调用REST服务就可以了。服务端和客户端彻底解耦,就像在JE上看过的一个大牛的文章说的那样:世界上根本没有B/S系统,只有B系统和S系统。你所提到的那些问题,在REST架构下可以很好的解决:服务端仅仅暴露REST服务,对普通的PC用户建立一个使用Ajax实现的Web客户端,而对手机用户(如果的确有很大的需求)则完全可以通过不同的方式(绕开浏览器都完全OK)实现一个移动客户端。
REST架构的其他有点:充分利用HTTP缓存,意义明确的URL等等就更不用多提了。

也许REST现在还处于其初级阶段,还有很多问题需要解决,但也绝对不像你说的这般一无是处。相反,你这种言论只能说明你的无知,相当的无知……
12 楼 weicanhuang 2008-04-06  
没有最强的语言,只有最烂的程序员。

lz说js垃圾,但就是有人把它玩得出神入化。

13 楼 wangcity 2008-04-08  
>>你真的用过JS吗?这种批评根本站不住脚的,JS是一种标准的技术,问题在于这些浏览器厂商自己喜欢弄一套东西出来,而不兼容标准。说白了这也就是IE的问题而已,如果没有IE,你说的那些问题根本就不是问题。

典型的一句废话!你看看你周围的人,我敢说80%用的是IE
如果没有IE,我说的那些根本就不是问题?那现在80%的是IE,那说明我说的那些问题就是一个大问题!




>>IE8正在开发中,据说也是完全符合标准的,等它出来了,相信情况会好很多。

IE8是号称支持标准,现在有篇文章很火,讲的是什么"火星人的耳机"你看看再来谈什么是所谓的标准,是不是只要一用所谓的标准,就可以解决更多问题.
我敢说,等IE8出来,你用js实现的一堆ajax,也许一半都要给废掉!



>>其实Ajax开发,大家用的都是一些JS库,其内部早已经解决了浏览器兼容性问题了,留给开发者自己解决的问题并不多。

当然有一些js库可以用,你以为它说已经解决了跨浏览器问题,就真的都解决的那么彻底?
连java还号称是跨平台的呢,可实际上,还是有些地方是有差别的.例如线程,在不同的系统上,都有差异.

>>至于手持设备的浏览器,我不知道有多少人会用手机浏览JE,新浪之类的网站,但如果一个应用真的有大量的手持设备用户,那么它一定会专门定制一个适合浏览器的版本,比如校内就有手机版。就算没有Ajax,没有JS,拿手机看这些普通网站(除了iPhone这类极其强悍的智能手机以外)本来就是很“变态”的一件事。而且,现在的很多手机都已经有了相当强悍的浏览器,等3G时代来临,更是如此。

你说的话自相矛盾,你不知道多少人用手机浏览,那你就别发表议论.
人家用手机看网站,到你这里来,就是变态的事情了?
你对变态的定义,才是真的变态!
强悍的手机浏览器又怎么样?flash这种富客户端技术,目前就是不被支持的!
支持以后,让它在pc上和手机上都显示,还是需要作2个版本,而且在手机这么小的屏幕上动不动化,根本就没什么意义.
3G来临和我们讨论的问题,根本没什么相关性,3G大不了是手机网路速度提高而已.
我这关心的是如何在手机的小屏幕上也能用同一个版本更好显示.


>>你把REST和Ajax强行放在一起讨论,更说明了你的无知。REST与Ajax没有什么关系。

是你无知还是我无知?你自己去看看IBM的文章后再作判断,动不动说人家无知的人,还是在学校里面混吧?读了几天书?

14 楼 wangcity 2008-04-08  


>>你把REST和Ajax强行放在一起讨论,更说明了你的无知。

IBM的文章链接在这里:
http://www.ibm.com/developerworks/cn/web/wa-ajaxarch/
既然是小学生的水准,我就不怕多费点功夫,动不动说无知的人,自己看看再说, 是不是更加说明了你自己的无知!



>>REST与Ajax没有什么关系。REST是一种服务端技术,是一种架构模式,也可以说是Web服务的一种架构而已,它与你用不用Ajax没有关系的,

上面这句话,用你的话来说,就是"更说明了你的无知"!!!
看你说的这种话,就像说,杨利伟要上天,和运载火箭,飞船没什么关系,只要一个屁放的足够响,就能一屁打上天.
技术模型是要有技术手段来实现的,按你说的,没什么关系,我且请问,REST和什么有关系?


>>你也可以用Flash,或者用别的任何能处理HTTP协议的语言和平台来做“客户端”。
又是一句废话,你自己再说说,除了web,浏览器,还用什么你的所谓"别的任何能处理HTTP协议的语言和平台来做“客户端”"

>>REST的这种架构风格的真正威力就在这里,服务端丝毫不关心数据如何展示,仅仅关心业务的处理,它通过REST来提供服务,而客户端,无论使用什么开发,仅仅需要关心数据如何展示,如何与用户交互而已,其他的只需要调用REST服务就可以了。

看起来好像是对的,不过,你的服务端丝毫不关心数据如何展示,我想问你,那这个数据是如何展示的?
是像CS模式的,由客户端软件(非IE)展示,还是由IE(或其他浏览器)展示?如果是由IE展示,那么IE展示的东西从何而来,是不是还是从服务器来?如果是从服务器来,服务器端如何能丝毫不关心数据如何展示?



>>服务端和客户端彻底解耦,就像在JE上看过的一个大牛的文章说的那样:世界上根本没有B/S系统,只有B系统和S系统。你所提到的那些问题,在REST架构下可以很好的解决:服务端仅仅暴露REST服务,对普通的PC用户建立一个使用Ajax实现的Web客户端,而对手机用户(如果的确有很大的需求)则完全可以通过不同的方式(绕开浏览器都完全OK)实现一个移动客户端。
REST架构的其他有点:充分利用HTTP缓存,意义明确的URL等等就更不用多提了。

不是说REST和AJAX没什么关系么,怎么这里你又可以说ajax了?打自己嘴巴不是?
绕开浏览器都完全ok?典型的站着说话不嫌腰疼,绕开浏览器,你用什么方式?email,ftp,还是自己写个客户端?
你自己写的客户端?多此一举,脱了裤子放屁!!!你知道移动设备有多少种?各种平台,屏幕尺寸就够你折腾的.
用句流行用语:脑残!!!



>>也许REST现在还处于其初级阶段,还有很多问题需要解决,但也绝对不像你说的这般一无是处。相反,你这种言论只能说明你的无知,相当的无知……

你的言论连无知都不是,只能说明你白痴!



15 楼 moonranger 2008-04-12  
真后悔回这帖子,当初没看清楚竟然是“入门讨论”,难怪没多少人回复,因为都懒得理你,这是我的失误,以后要注意。没错,我是学生,所以不会像你这样开口就用“脱了裤子放屁”这样的字眼骂人。懒得跟你讨论了,只想说你的确不行:

1.我用过好几个JS库,做过好几个项目,没有遇到你说的那种所谓的兼容性问题。当然你非要跟那1%不到的几个特殊的浏览器或者古董级浏览器较劲,我也没办法。说到底,程序员的功底问题。

引用
没有最强的语言,只有最烂的程序员。
lz说js垃圾,但就是有人把它玩得出神入化。


2.不要拿developerWorks上的文章说事,的确,REST经常和Ajax放到一起讨论,但这不意味着你就一定要用Ajax。REST是Web服务的一种架构模式,Web服务是要利用HTTP协议作为数据传输通道来实现分布式应用的,懂吗?谁说了使用HTTP协议就一定要用浏览器了?不知道你用过del.icio.us的API没有,Firefox和IE都有其插件,数据如何传递,就是通过RESTful Web Service;Last.fm听说过没有,那么多支持它的播放器如何将用户播放过的歌曲信息传到Last.fm网站的,还是RESTful Web Service。REST的优点是充分利用了HTTP的底层设施,只要是能用HTTP协议,任何语言,任何平台都可以调用REST服务,与浏览器无关。

拿一篇developerWorks上的文章出来,你就了不起了?还是那句话:无知!

想骂的话接着骂,懒得再理你了,也不准备继续回这帖子,你自己玩吧。
16 楼 pj8324 2008-10-21  
真是千古名对骂~~ 看得真爽呀, 小弟正在网上找REST和AJAX的文章学习, 没想到看到你们在这里对骂, 对骂中还真是学习了不少东西呀...
真是谢谢两位了,看得出两位也都是高手中的高手, 就不要那么孩子气啦, 握手言和吧~~
  相关解决方案