日期:2014-05-16  浏览次数:20665 次

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什么地方惹到您老人家了啊......
您要真没用过,就别乱下评价。<