论坛首页 Web前端技术论坛

停止炒做,开始工作——评围绕 AJAX 的浮躁气氛

浏览 17970 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2005-05-19  
最近 AJAX 这个缩写词被炒做的非常厉害。看了一些网上相关的介绍,不过就是一些 XMLHTTP 最基本的应用而已。我们在 3 年前就做得很轻松的一些事情,现在被当作发现新大陆一样来大肆炒做。这样做有何意义?老外看来也未必见得比中国的开发者来的踏实。也许是以前依靠完全的基于 HTML Form 的请求/响应模式 + 服务器端 MVC 的开发,积累的怨气太多,突然发现 Web 开发居然还可以这样做(就是我去年 3 月在 JavaEye 聚会上所讲的内容,把表示逻辑前推到浏览器端,完全使用 JS 来实现)。现在把这些怨气发泄了出来,整个是一个忆苦思甜的大爆发,对于万恶旧社会的血泪控诉。其实我现在关心的并不是控诉基于 HTML Form 的请求/响应模式的罪恶(这方面的内容占据了这些文档相当多的篇幅),这些内容我自从去年 3 月以来在 JavaEye 论坛上已经宣传过很多次了,我现在更关心的是如何在新的开发方式下做一些复杂度更高的事情。

在这里我要说 AJAX != XMLHTTP。很多人幼稚地以为 AJAX 就是 XMLHTTP,懂了 XMLHTTP 就好像精通了 AJAX。其实 AJAX 还包含很多的内容,XMLHTTP 只是一种基础的技术,AJAX 是一套完整的架构。要想完全基于 AJAX 方式来做 Web 表示层开发,需要实现大量表示层的组件。只有 XMLHTTP 是建造不出来 Google Map 的。而现在的一些开源项目,如 json-rpc 和 buffalo 也不过只是实现了对于 XMLHTTP 的封装,实现了远程调用和 JS 对象/Java 对象之间的序列化/反序列化。这些工作重要吗?非常重要。然而仅仅完成了这些工作,仍然无法大幅减轻界面开发人员的工作量,提高开发效率(Quake Wang 早在几个月前就非常清醒地指出了这一点)。因为还是有大量的表示层组件需要自己去开发,而不像 Flash 那样有很多现成的组件可以直接使用,并且还有 IDE 的良好支持。辛苦的工作还在后面,同志们,革命尚未成功啊。
   发表时间:2005-05-20  
"现成的组件可以直接使用"
" IDE 的良好支持"
"同志们,革命尚未成功啊。"
同意!冀望早日成功。。。
0 请登录后投票
   发表时间:2005-05-20  
每个人都有些想法。
每个人都努力着自己实现。
牛人 大拿们难道不能合力搞出一些东西啊?


其实搞webgis的对无提交刷新早有研究了,从applet,到隐藏帧,到iframe的尝试。对xmlhttp一直找不到好的框架,希望可以出现成熟的框架来。
关于xml到java对象转换我用http://xstream.codehaus.org/。假如有套类似的javascript解析xml的api.那用xmlhttp,很多问题就可以解决了。

function Person();{
this.name='';
this.age='';
}
Person.pototype.load=function (xml);{
........
}
Person.pototype.toTableHtml=function(cssName);{
.................
}
.....生成现实控件的代码。
var xml='<Person><name>zkj</name><age>25</age></Person>';

var person=new Person();;
person.load(xml);;

再通过xstream,再来个代码生成工具(生成java and javascript),xmlhttp框架,javascript控件,javascript对象(person)与javascript控件绑定机制。

最终达到的目的是,数据从前到后都是POJO.

关于Google Map 其实它不是最好的。我指得是地图这块。
http://www.digitalbeijing.gov.cn/searchcity/sdefault.asp
http://149.99.255.181/SvgWorldDemo/
http://www.ccgis.de/gisonline.html
0 请登录后投票
   发表时间:2005-05-20  
现实是AJAX比HTML Form 的请求/响应模式更能做出更友好更人性化的界面,至于二者实现代价的比较,只能等"现成的组件可以直接使用" 的出现才好评判。个人觉得XMLHTTP,JS是AJAX的基础。最近关于AJAX的讨论不少,说明XMLHTTP,JS确实吸引了相当数量开发者的眼球,这不是什么坏事。说不定哪个开源的AJAX项目就在这产生呢。
0 请登录后投票
   发表时间:2005-05-20  
不就是xmlhttp吗
if (window.XMLHttpRequest); {
        req = new XMLHttpRequest();;
    } else if (window.ActiveXObject); {
        req = new ActiveXObject("Microsoft.XMLHTTP");;
    }
    req.onreadystatechange = processRequest;
    req.open("GET", url, true);;
    req.send(null);;
}


我的Midwinter框架在2年前就实现了,虽然当时不叫AJAX
0 请登录后投票
   发表时间:2005-05-20  
记得javaeye有人说过要做一套组件库出来,忘了是谁了,不知进度如何?
0 请登录后投票
   发表时间:2005-05-21  
使用XMLHTTP熟练了以后自然会形成一个开发框架,不管这个框架是叫AJAX或是别的什么。我一点也不了解AJAX,在我第一次听到这个名词之前我已在长期的XMLHTTP应用过程中形成了自己的一套框架。自从使用了XMLHTTP之后,我再也没有写过一个FORM,也没有使用HTTP Request/Response写过一次交互过程,再也回不去了。对于DLEE的话我还有一些不解,
引用
要想完全基于 AJAX 方式来做 Web 表示层开发,需要实现大量表示层的组件。

需要什么组件?XHTML所提供的那些表示层组件配合JS的使用在页面不刷新的状态下无论是表现能力还是交互性都足够好了,充其量再加上一些树足矣,还需要什么大量的组件吗,说得这么吓人。
引用
实现了远程调用和 JS 对象/Java 对象之间的序列化/反序列化。

需要吗,我理解XMLHTTP交互是不应该传递对象的,当然也不会传递对象的序列化信息,XML,一切都是XML,太好用了,难道还要去搞一些什么VIEW OBJECT去用XMLHTTP来传吗?那不如去用什么STRUTS或是WW2算了。我的革命很彻底,这些WEB框架早已扫入历史的垃圾箱了,因为界面不需要流转了,界面与服务器完全不耦合了,这些东东彻底失去存在的价值了,还有什么TAGLIB啊,界面模板啊,彻底BYEBYE。我现在爱的是JS/XHTML/CSS,WEB界面有了这些就够了又够了。

引用
而不像 Flash 那样有很多现成的组件可以直接使用,并且还有 IDE 的良好支持

如果你觉得写JS和CSS还需要什么IDE那我也没什么办法,反正我吃饭是不用机械臂的,拿两根筷子扒啦扒啦足够了。

我使用XMLHTTP最大的心得就是自觉地养成了使用SOA的习惯,不要砸我,这个A不是那个巨大的吓死人的A,而是专门为表示层提供服务的小A,服务器端为界面提供的所有功能我都写成一个service形式,不是WEB SERVICE,那太复杂,我自己定义了一个SERVICE格式,非常简单非常够用非常好用,每个SERVICE都通过一个统一的接口实现一个doService(),页面的所有交互都在这里了,一个方法搞定。这觉得这很象在业务逻辑层和数据操作层使用SPRING,但比它要简单得多,当然,实现上我直接拿了SPRING中的一个包来用,足够了。

要想了解XMLHTTP的妙处,还是多多去用吧,光想是没有用的,用多了你会爱上她的,而且你再也不会想去找你的旧情人了。
0 请登录后投票
   发表时间:2005-05-21  
我也不是很理解 ! xul不是很好吗 ? 为什么要自己开发组件 ?

即便xul不够用那么还有svg等优秀的技术可用.

我看完全可以等支持svg的浏览器出现再开始AJAX.

而且那个时候css也会和xhtml一起被淘汰.  与其挖掘css的技巧不如多些时间来研究xsl的技巧
0 请登录后投票
   发表时间:2005-05-21  
winterwolf 写道
我也不是很理解 ! xul不是很好吗 ? 为什么要自己开发组件 ?

即便xul不够用那么还有svg等优秀的技术可用.

我看完全可以等支持svg的浏览器出现再开始AJAX.

而且那个时候css也会和xhtml一起被淘汰.  与其挖掘css的技巧不如多些时间来研究xsl的技巧

这样说也太想当然了,淘汰一种东西不是那么容易的,没有充分的理由时,保持向下兼容以保护原有投资是必要的。
xul不能使用在IE中,而且将来也不会,css则是可以在一定程度上被大多数浏览器兼容的东西。
等支持svg的浏览器还要一些时间,而有些需求不会拖到那个时候。
0 请登录后投票
   发表时间:2005-05-21  
xuxj 写道
对于DLEE的话我还有一些不解,
引用
要想完全基于 AJAX 方式来做 Web 表示层开发,需要实现大量表示层的组件。

需要什么组件?XHTML所提供的那些表示层组件配合JS的使用在页面不刷新的状态下无论是表现能力还是交互性都足够好了,充其量再加上一些树足矣,还需要什么大量的组件吗,说得这么吓人。

包装良好的组件应该是能够被业务直接使用的,而且一定是与服务器端组件结合的,xhtml的组件确实还需要被加强。
xuxj 写道
引用
实现了远程调用和 JS 对象/Java 对象之间的序列化/反序列化。

需要吗,我理解XMLHTTP交互是不应该传递对象的,当然也不会传递对象的序列化信息,XML,一切都是XML,太好用了,难道还要去搞一些什么VIEW OBJECT去用XMLHTTP来传吗?

前端是基于对象的模型,后端是面向对象的模型,如果不进行dlee说的工作怎么避免阻抗不匹配的困难?
xuxj 写道
引用
而不像 Flash 那样有很多现成的组件可以直接使用,并且还有 IDE 的良好支持

如果你觉得写JS和CSS还需要什么IDE那我也没什么办法,反正我吃饭是不用机械臂的,拿两根筷子扒啦扒啦足够了。

虽然说不要依赖IDE,但并不等于完全不要IDE阿,良好的IDE难道不是能够提高效率么?大规模开发不是自己写小工具那么简单,给一台机器安装OS只要一张光盘一个人,可是给1000台机器就不是这样了。
0 请登录后投票
论坛首页 Web前端技术版

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