<%@ page contentType="text/html; charset=gb2312"%> ajaxanywhere 比较简单的一个ajax项目
网站公告:   ◆北天JAVA技术网热情为java爱好者服务,本网内容包括JAVA(JSP、servlet、EJB、webservice、j2ee、javabean、应用服务器、JavaScript),数据库(MYSQL、SQL Server、Sybase、Oracle、DB2、数据库综合知识),设计研究(设计模式、Struts、Spring、Hibernate、设计框架、设计综合知识),WEB2.0新技术(主要介绍AJAX),以及各种技术的入门、实例、例子等等,欢迎各位多来坐坐!◆  诚邀各位JAVA爱好者加盟!◆  本网站内容丰富,更新快,保证每周20篇以上!  
加入收藏
设为首页
联系站长
承接项目
  相关资源:网站首页 | 免费培训学院 | 技术论坛 | JAVA聊天室 | 作家专栏 | 开发工具 | 认证考试 | 会员俱乐部
  JAVA技术初学者园地 | jsp与servlet | javascript | Java源代码 | EJB | web service | 应用服务器 | JAVA综合知识
  设计研究设计模式 | 设计框架 | Struts | Spring | Hibernate | 开源项目 | 面向对象设计 | 设计综合知识
  数 据 库MYSQL | SQL Server | Sybase | Oracle | DB2 | Informix | Access | 数据库综合知识
  其他资源:AJAX新技术 | 网站开发 | ERP软件 | OA办公软件 | 商业智能BI | 开发综合知识 | 承接项目 | 项目试用

 
 
ajaxanywhere 比较简单的一个ajax项目
     发布者: 发布时间:2006-11-10

ajaxanywhere http://ajaxanywhere.sourceforge.net/.
可以很迅速的在非ajax的java项目上增加上ajax功能。

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

代码
  1. <aa:zone name="countriesList">  
  2.   
  3.     <select size="10" name="country" >  
  4.         <%@ include file="/locales_options_countries.jsp.jsp"%>  
  5.     </select>  
  6.   
  7. </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由异曲同工之处,原先想自己做一套类似的,没想到已经有现成的了.

评论    共 11 条 发表评论
大愚弱智     2005-11-16 10:44

吐血,又来一个framework,ajax怎么那么多实现,我们每天都在学习,为什么老是觉得永远学不完

pikachu     2005-11-16 17:58

大愚弱智 写道
吐血,又来一个framework,ajax怎么那么多实现,我们每天都在学习,为什么老是觉得永远学不完

比较看好这套实现。从我下载后学习demo算起,30分钟内就把一套struts程序中的一个页面改为ajax的。

zkj_beyond     2005-11-18 09:17

为了兼容旧项目而实现ajax感觉有些做作.可web程序表现只能是ajax吗?这个判断肯定不对,可到底我们怎么面对ajax.

面对扑面而来的ajax,真希望哪位gao人来本<without ajax>.
dlee不如来试试.

谁读过ajax in action.来show下.

大愚弱智     2005-11-18 15:16

zkj_beyond 写道
为了兼容旧项目而实现ajax感觉有些做作.可web程序表现只能是ajax吗?这个判断肯定不对,可到底我们怎么面对ajax.

面对扑面而来的ajax,真希望哪位gao人来本<without ajax>.
dlee不如来试试.

谁读过ajax in action.来show下.

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

醒来     2005-11-19 17:28

大愚弱智 写道
zkj_beyond 写道
为了兼容旧项目而实现ajax感觉有些做作.可web程序表现只能是ajax吗?这个判断肯定不对,可到底我们怎么面对ajax.

面对扑面而来的ajax,真希望哪位gao人来本<without ajax>.
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端的技术,与后台没有依赖性。

lllyq     2005-11-19 17:33

zkj_beyond 写道
为了兼容旧项目而实现ajax感觉有些做作.可web程序表现只能是ajax吗?这个判断肯定不对,可到底我们怎么面对ajax.

面对扑面而来的ajax,真希望哪位gao人来本<without ajax>.
dlee不如来试试.

谁读过ajax in action.来show下.

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

toafu     2005-11-23 15:20

lllyq 写道
zkj_beyond 写道
为了兼容旧项目而实现ajax感觉有些做作.可web程序表现只能是ajax吗?这个判断肯定不对,可到底我们怎么面对ajax.

面对扑面而来的ajax,真希望哪位gao人来本<without ajax>.
dlee不如来试试.

谁读过ajax in action.来show下.

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

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

ajax的出现带来的最大功效通过避免页面全部刷新而提高用户的良好UI体验,就技术来说,并不是新鲜的;底层的实现也是没有摆脱http的无状态,所以当看见更多的人对ajax顶礼膜拜的时候,我真的是有点糊涂了……

toafu     2005-11-23 17:51

pikachu 写道
ajaxanywhere http://ajaxanywhere.sourceforge.net/.
可以很迅速的在非ajax的java项目上增加上ajax功能。

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

代码
  1. <aa:zone name="countriesList">  
  2.   
  3.     <select size="10" name="country" >  
  4.         <%@ include file="/locales_options_countries.jsp.jsp"%>  
  5.     </select>  
  6.   
  7. </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,但是对于其实现的原理及流程看不清楚,专家能不能给解释一下呢?

toafu     2005-11-23 20:21

难道ajaxanywhere的诞生专门是为了对既有代码进行ajax优化?

大愚弱智     2005-11-24 09:19

本人狂热认为DWR很值得我们学习,

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

代码
  1. <aa:zone name="countriesList">  
  2.   
  3.     <select size="10" name="country" >  
  4.         <%@ include file="/locales_options_countries.jsp.jsp"%>  
  5.     </select>  
  6.   
  7. </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由异曲同工之处,原先想自己做一套类似的,没想到已经有现成的了.

(转载文章请保留出处:北天JAVA技术网(www.java114.com))
 
更多精彩文章:
"this" of JavaScript
征服ajax - web20开发技术详解试读版
一个经典的javascript教程
新编辑的五日学会js教程
网络编程基础篇之 java script
突破javascript编程实例五十讲
 
最近评论:
        
你曾悄悄的来过!
wow gold,wow gold,wow gold,ffxi gil max(8951)
        
冰封的往事!
wow power leveling,wow gold,wow power leveling,wow gold max(6999)
        
冰封的往事!
wow power leveling,wow gold,WoW Gold,wow gold max(8226)
        
飞舞的传奇!
传世私服,传世私服.传奇世界私服传奇世界私服,传世私服传世私服, 传奇世界私服传奇世界私服.传奇私服传奇私服. max(628)
        
飞舞的传奇!
传世私服,传世私服.传奇世界私服传奇世界私服,传世私服传世私服, 传奇世界私服传奇世界私服.传奇私服传奇私服. max(1441)
        
回复:ajaxanywhere 比较简单的一个ajax项目
asdfsdafsadfsadf
        
回复:ajaxanywhere 比较简单的一个ajax项目
frasdfsdafsdafsadfsdafsafdsdafsadfr
        
回复:ajaxanywhere 比较简单的一个ajax项目
sdfgdfg
        
回复:ajaxanywhere 比较简单的一个ajax项目
f
        
标 题:   
内 容:   
 
                                  
 
免责声明:该文章由网友发表,如果对您造成侵权,请联系站长

首页 - 承接项目 - 网站地图 - 联系我们 -
版权所有北天JAVA技术工作室 ICP证号:粤ICP备06079815号