论坛首页 Web前端技术论坛

ajaxanywhere 比较简单的一个ajax项目

浏览 17153 次
该帖已经被评为精华帖
作者 正文
   发表时间:2005-11-15  
ajaxanywhere http://ajaxanywhere.sourceforge.net/.
可以很迅速的在非ajax的java项目上增加上ajax功能。

ajaxanywhere基本上不需要更改原有服务器端的代码
使用ajaxanywhere需要在jsp页面上使用它的tag定义出zone的区域,每一块zone,都是可以被动态更新的
比如
<aa:zone name="countriesList">

    <select size="10" name="country" >
        <%@ include file="/locales_options_countries.jsp.jsp"%>
    </select>

</aa:zone>

ajaxanywhere还需要一个filter。在客户端通过js提交的url会被该filter截获,如果是普通的请求则直接放行,否则构造一个新的response传递给后续代码。这个 response中的outputstream不会被直接返回,而是当后续代码正常返回后,由filter抓取出zone中的html片断数据返回给浏览器,最后由js将html 作为 innerHTML更新到页面上对应的zone.

这种方式不需要开发者学习太多的js,平时开发时也是按照普通的页面流程开发.当需要ajax功能时,定义出zone区域,将请求由submit方法改为js调用就可以自动成为ajax.

从原理上看,filter的先后顺序非常重要,如果项目中还有sitemesh,那么需要将ajaxanywhere配置在前面,否则被 sitemesh一decorate,返回的数据就全歇了.

btw,这套方法和 sitemesh由异曲同工之处,原先想自己做一套类似的,没想到已经有现成的了.
   发表时间:2005-11-16  
吐血,又来一个framework,ajax怎么那么多实现,我们每天都在学习,为什么老是觉得永远学不完
0 请登录后投票
   发表时间:2005-11-16  
大愚弱智 写道
吐血,又来一个framework,ajax怎么那么多实现,我们每天都在学习,为什么老是觉得永远学不完

比较看好这套实现。从我下载后学习demo算起,30分钟内就把一套struts程序中的一个页面改为ajax的。
0 请登录后投票
   发表时间:2005-11-18  
为了兼容旧项目而实现ajax感觉有些做作.可web程序表现只能是ajax吗?这个判断肯定不对,可到底我们怎么面对ajax.

面对扑面而来的ajax,真希望哪位gao人来本&lt;without ajax&gt;.
dlee不如来试试.

谁读过ajax in action.来show下.
0 请登录后投票
   发表时间:2005-11-18  
zkj_beyond 写道
为了兼容旧项目而实现ajax感觉有些做作.可web程序表现只能是ajax吗?这个判断肯定不对,可到底我们怎么面对ajax.

面对扑面而来的ajax,真希望哪位gao人来本&lt;without ajax&gt;.
dlee不如来试试.

谁读过ajax in action.来show下.


Ajax in Action 我只看过一点,没时间看,觉得DWR不错,In Action 好像是拿.NET来讲解的,看不懂VS.NET的代码,也不想看。
0 请登录后投票
   发表时间:2005-11-19  
大愚弱智 写道
zkj_beyond 写道
为了兼容旧项目而实现ajax感觉有些做作.可web程序表现只能是ajax吗?这个判断肯定不对,可到底我们怎么面对ajax.

面对扑面而来的ajax,真希望哪位gao人来本&lt;without ajax&gt;.
dlee不如来试试.

谁读过ajax in action.来show下.


Ajax in Action 我只看过一点,没时间看,觉得DWR不错,In Action 好像是拿.NET来讲解的,看不懂VS.NET的代码,也不想看。


Ajax in Action 书还是不错的,后台不光用了VS.NET,也有 php 和 java, 这些后台的技术其实对于 Ajax 的理解不重要,因为它们的主要工作就是构造返回的xml数据而已,而用各种后台技术配合examle 正说明了 Ajax 是一个client端的技术,与后台没有依赖性。
0 请登录后投票
   发表时间:2005-11-19  
zkj_beyond 写道
为了兼容旧项目而实现ajax感觉有些做作.可web程序表现只能是ajax吗?这个判断肯定不对,可到底我们怎么面对ajax.

面对扑面而来的ajax,真希望哪位gao人来本&lt;without ajax&gt;.
dlee不如来试试.

谁读过ajax in action.来show下.


很乐见without ajax的出来,我看用ajax的功能用iframe来实现也都可以嘛,不过没用过,不敢乱评论,有空再研究,呵呵。
0 请登录后投票
   发表时间:2005-11-23  
lllyq 写道
zkj_beyond 写道
为了兼容旧项目而实现ajax感觉有些做作.可web程序表现只能是ajax吗?这个判断肯定不对,可到底我们怎么面对ajax.

面对扑面而来的ajax,真希望哪位gao人来本&lt;without ajax&gt;.
dlee不如来试试.

谁读过ajax in action.来show下.


很乐见without ajax的出来,我看用ajax的功能用iframe来实现也都可以嘛,不过没用过,不敢乱评论,有空再研究,呵呵。


除了iframe,好像IEDownload也可以做类似的事情吧,所以ajax不一定是唯一的选择。

ajax的出现带来的最大功效通过避免页面全部刷新而提高用户的良好UI体验,就技术来说,并不是新鲜的;底层的实现也是没有摆脱http的无状态,所以当看见更多的人对ajax顶礼膜拜的时候,我真的是有点糊涂了……
0 请登录后投票
   发表时间:2005-11-23  
pikachu 写道
ajaxanywhere http://ajaxanywhere.sourceforge.net/.
可以很迅速的在非ajax的java项目上增加上ajax功能。

ajaxanywhere基本上不需要更改原有服务器端的代码
使用ajaxanywhere需要在jsp页面上使用它的tag定义出zone的区域,每一块zone,都是可以被动态更新的
比如
<aa:zone name="countriesList">

    <select size="10" name="country" >
        <%@ include file="/locales_options_countries.jsp.jsp"%>
    </select>

</aa:zone>

ajaxanywhere还需要一个filter。在客户端通过js提交的url会被该filter截获,如果是普通的请求则直接放行,否则构造一个新的response传递给后续代码。这个 response中的outputstream不会被直接返回,而是当后续代码正常返回后,由filter抓取出zone中的html片断数据返回给浏览器,最后由js将html 作为 innerHTML更新到页面上对应的zone.

这种方式不需要开发者学习太多的js,平时开发时也是按照普通的页面流程开发.当需要ajax功能时,定义出zone区域,将请求由submit方法改为js调用就可以自动成为ajax.

从原理上看,filter的先后顺序非常重要,如果项目中还有sitemesh,那么需要将ajaxanywhere配置在前面,否则被 sitemesh一decorate,返回的数据就全歇了.

btw,这套方法和 sitemesh由异曲同工之处,原先想自己做一套类似的,没想到已经有现成的了.


由于生性愚钝,对于Ajaxanywhere如何的工作机制还是不甚明了。我下载了它的demo.war,但是对于其实现的原理及流程看不清楚,专家能不能给解释一下呢?
0 请登录后投票
   发表时间:2005-11-23  
难道ajaxanywhere的诞生专门是为了对既有代码进行ajax优化?
0 请登录后投票
论坛首页 Web前端技术版

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