论坛首页 Web前端技术论坛

给Ajax技术初学者的一些建议

浏览 65406 次
该帖已经被评为精华帖
作者 正文
   发表时间:2007-05-15  
hexiaodong 写道

用户似乎得操作20次,或者ajax执行20次。如果这样子的话,还是先不用的好。


这个不是针对某项order资源的操作,而是针对orders集合资源的操作

DELETE  /orders


在请求的body部分包含了要删除的order id的列表。你可以想像成,页面order列表,每项order前面有一个checkbox框,选择要删除的checkbox,最后提交那种场景,form提交的URI是/orders,但是form里面会封装要删除的order id的列表。

0 请登录后投票
   发表时间:2007-05-15  
libai 写道
又想了一下,错不在Fielding同志,错在把REST抬出来套在Ajax脑袋上的同志。

Fielding是在2000年总结的REST,那时候ajax只是少数像老夫这样的怀疑论者才使用的技术,当时主流Web开发技术是各种“服务器动态页面”,REST的很多提法都是针对各种不规范的“XSP”程序,比如关于URI的资源唯一性问题,对“服务器动态页面”类型的应用,确实比较重要;但对与ajax请求来说,反正URI用户是看不见的,搜索引擎也是看不见的,HTTP缓存机制基本也是用不上的,这种情况下,死缠URI的规范严瑾还有什么意义?

你的错就是一向太喜欢主观臆测,当然有独立的思想是非常棒的。你继续这样臆测下去就不要怪我不陪你玩了。
0 请登录后投票
   发表时间:2007-05-15  
dlee 写道
to leebai:
我免战。可以先告一段落了,等过一段时间干完活了再来与你缠斗。:D

注意:REST是一种架构风格,RPC是另外一种架构风格。为何HTTP要设计为现在这个样子,大家最好先看了论文再来争论。
有一点是肯定的,如果你想要充分利用HTTP底层的基础设施,例如HTTP缓存、HTTP认证,并且使得你们的Web应用具有最佳的可伸缩性,那么最好基于REST的架构来做设计。为何REST风格的架构能够满足这样的可伸缩性要求,请自行去阅读论文,在论文中有相当严密的理论和实践方面的证明。如果连论文都不肯阅读,我真的没有多大兴趣去陪一个不肯学习接受新知识新观念(当然REST本身并不新,只是对于某些不了解的同学而言)的人版聊。纠正某些人的误解或者在这里做REST和HTTP的科普并不是我的责任,还有更加有利可图的事情等着我。

Fielding是何许人也?他是NCSA之外的第一个Web接口库libwww-perl的开发者,还是Apache HTTP服务器的核心设计者,早期Apache内部的所有与协议有关的部分都是他设计开发的,所以你们可别以为他就是一个成天喝茶看报的老学究。

上面的两位同学,我先闪人了。有本事你们去可以著书立说完全推翻Fielding的理论。只要你能写出来,我可以保证你绝对能出版。


dlee兄也不厚道,闪就闪了吧,临走还不忘踩我一脚,“不肯学习接受新知识新观念”

不过老夫确实不是喜欢追求新技术的人,这些年来,strust、ejb、spring、hibenate。。。大多数东西都是看两眼而已,实在没有兴趣。但对于HTTP等基础的东西,还不致于需要dlee兄来给科普,rfc2616/rfc1867之类的东西,我可是通读过好几遍的哦。要是不信,你可以下载看看我的7wxAop框架代码,连文件上传流的后台解析,都是自己一行行代码实现,国内估计不会有多少人玩过这个层次的东西吧。

0 请登录后投票
   发表时间:2007-05-15  
dlee 写道
libai 写道
又想了一下,错不在Fielding同志,错在把REST抬出来套在Ajax脑袋上的同志。

Fielding是在2000年总结的REST,那时候ajax只是少数像老夫这样的怀疑论者才使用的技术,当时主流Web开发技术是各种“服务器动态页面”,REST的很多提法都是针对各种不规范的“XSP”程序,比如关于URI的资源唯一性问题,对“服务器动态页面”类型的应用,确实比较重要;但对与ajax请求来说,反正URI用户是看不见的,搜索引擎也是看不见的,HTTP缓存机制基本也是用不上的,这种情况下,死缠URI的规范严瑾还有什么意义?

你的错就是一向太喜欢主观臆测,当然有独立的思想是非常棒的。你继续这样臆测下去就不要怪我不陪你玩了。


不许吓唬人 。“臆测”都是我引题,背后都是有理性论述支持的,偶一般不喜欢空口白话瞎咋呼。
0 请登录后投票
   发表时间:2007-05-15  
libai 写道
不许吓唬人 。“臆测”都是我引题,背后都是有理性论述支持的,偶一般不喜欢空口白话瞎咋呼。

得了吧,我可以肯定地告诉你,你在诬蔑Fielding,人家的真正想法不是你说的这样的。
0 请登录后投票
   发表时间:2007-05-15  
dlee 写道
libai 写道
不许吓唬人 。“臆测”都是我引题,背后都是有理性论述支持的,偶一般不喜欢空口白话瞎咋呼。

得了吧,我可以肯定地告诉你,你在诬蔑Fielding,人家的真正想法不是你说的这样的。



继续版聊。说实话,偶确实没看过Fielding的论文,但看过一些REST的资料,据我对HTTP的理解,我看出REST是为了捍卫HTTP的纯洁性,这对2000年至今的“动态服务器页面”web应用确实很重要;但对于目前流行的ajax,其请后台请求部分(不是前台程序外壳部分)我的观点是:需要一个简化的Http协议来支持,我一直有个观点:刚好够用的东西,一定是最好用东西。

我已经更正我的说法了,错不在Fielding。这种大人物,得罪不起,呵呵。
0 请登录后投票
   发表时间:2007-05-16  
robbin 写道
引用
你再想想,在复杂资源中,PUT要处理的各种操作并非只是更改资源属性这么简单,比如上面我的例子:

1、修改子栏目put:除了涉及修改栏目属性,还要保存栏目相关附件文件,设置修改日志等等,这些工作其他put是不需要的;
2、发布子栏目put:除了涉及修改栏目属性,还要更新栏目内容缓存,更新栏目全文检索的索引等等,这些工作其他put是不需要的;
3、移动子栏目put:除了涉及修改栏目属性,还要检查目标父栏目是否允许移入等等,这些工作其他put是不需要的;
。。。。。。。

也就是说很多操作其实都不是简单的原子操作,而是复杂的事务操作,这是我一直强调的。

如果要在一个PUT的处理代码中完成所有这些操作,只能引入一个巨大的swith case来处理,而case的条件参数,你不叫action,也得叫command,不叫command,也得叫do。。。反正英语表达行为就那么几个词,你是逃不掉的,和struct一点都没关系。


如果非要在一次web请求过程中,同时处理多项资源的多个操作,确实无法简单的映射到四种基本操作上。我看了一下beast项目,没有找到需要同时处理多项资源的场景。当然,在复杂一点的项目当中,确实存在这种需求,以目前我所知道的情况来说,我不知道有什么很优雅的解决方案。

如果我碰到这种情况,会在标准的GET/POST/PUT/DELETE之外,自定义其他语义操作,在该语义映射的action方法中处理这个请求。在这个方面,RoR的支持是很强大的,可以在routes.rb里面随意定义扩展操作语义,然后自动生成相关的link helper和action映射。当然,你可以说,在这种情况下,4个基本操作不是完备的。



我没看过beast应用,但是我的项目经验告诉我,web请求中有很多是需要多个原子操作组合才能完成的。所以前面的贴子我和dlee这样说:

--------------------
我认为,要更深入、更好的改进ajax通讯及服务器端架构,需要从实际出发,即从Ajax Request(Ajax客户端发出的HTTP请求)出发,采集足够多的Ajax Request 样本,分析这些样本的功能、上行数据、下行数据、与普通HTTP请求的差异,由此来决定Ajax Server应该是什么样的。如果有需要,我可以贡献目前7wxAop框架所带实际应用Studio/DBView/FileView/CMS/BBS/User中的将近300个Ajax Request的相关代码以供研究。
--------------------

REST是2000年思想,我觉得思想应该总是在进步的,而进步更多的是来自实践的总结,而不是理论推导。

中国人提点自己的思想确实容易被人嘲笑,大家的印象中,似乎只有西方人有思想,中国人只配当福音的传播者。
0 请登录后投票
   发表时间:2007-05-16  
dlee我在用纯粹的rest的系统开发 所以我不可能不知道rest是什么

上面我提示过这个系统的名字
0 请登录后投票
   发表时间:2007-05-16  
leebai 写道
dlee 写道
libai 写道
不许吓唬人 。“臆测”都是我引题,背后都是有理性论述支持的,偶一般不喜欢空口白话瞎咋呼。

得了吧,我可以肯定地告诉你,你在诬蔑Fielding,人家的真正想法不是你说的这样的。



继续版聊。说实话,偶确实没看过Fielding的论文,但看过一些REST的资料,据我对HTTP的理解,我看出REST是为了捍卫HTTP的纯洁性,这对2000年至今的“动态服务器页面”web应用确实很重要;但对于目前流行的ajax,其请后台请求部分(不是前台程序外壳部分)我的观点是:需要一个简化的Http协议来支持,我一直有个观点:刚好够用的东西,一定是最好用东西。

我已经更正我的说法了,错不在Fielding。这种大人物,得罪不起,呵呵。


说rest很优秀我同意。fielding是否说rest能取缔ws我不清楚 如果说了就是吹牛
0 请登录后投票
   发表时间:2007-05-16  
leebai 写道
又想了一下,错不在Fielding同志,错在把REST抬出来套在Ajax脑袋上的同志。

Fielding是在2000年总结的REST,那时候ajax只是少数像老夫这样的怀疑论者才使用的技术,当时主流Web开发技术是各种“服务器动态页面”,REST的很多提法都是针对各种不规范的“XSP”程序,比如关于URI的资源唯一性问题,对“服务器动态页面”类型的应用,确实比较重要;但对与ajax请求来说,反正URI用户是看不见的,搜索引擎也是看不见的,HTTP缓存机制基本也是用不上的,这种情况下,死缠URI的规范严瑾还有什么意义?

winterwolf应该理解我的意思。


是的 商务应用本身就不喜欢暴露。 用ajax + post web service正合适。

而且ajax + post web service一样是可以缓存的 和rest没有任何差别  
0 请登录后投票
论坛首页 Web前端技术版

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