在采用AJAX技术的应用中, 常见的是两种架构设计, 一种是采用RPC(Remote Procedure Call)方案,
后台应用直接将java对象包装为service接口, 在js对外暴露(java对象完全不知道web层),
在js中通过类似函数调用的方式访问后台服务.而另外一种方案是在后台维持一个前台DOM节点的映象,触发前台事件之后, 前台引擎自动截获该事件,
并翻译为对后台事件监听器的调用, 将请求提交到后台, 后台程序处理请求之后更新后台DOM节点, 然后将页面变更部分传回前台页面.
这两种方案一种是倾向于在js中提供自我封闭的程序模型(对远程服务的调用体现为对一个js函数的调用),
一种是倾向于在后台提供封闭的程序模型(对前台页面的更新体现为对一个后台java对象的属性和结构的改变).
这两种方案的共同之处在于它们都试图在一定程度上屏蔽前后台程序的交互细节, 而提供一种统一的程序模型.
但是我们需要记住软件设计的第一要义在于系统的分解,
而Browser和Server之间客观存在的http信道是天然存在的一种分界线. 任何强迫我们忘记B/S之间的界限的技术都是需要谨慎对待的.
例如控制后台对象的权限问题, 很多RPC方案限制了应用程序对于web接入层的直接接触, 而只能通过AOP(Aspect Oriented
Programming)技术来动态织入权限控制代码. 在实际使用中,
这种方式往往因为service接口函数的多样化而造成配置上的繁琐. 而在我们的体系架构中,
系统边界划分在web访问层上(而不是java service层), 借助于web访问协议自身的一致性和透明性, 我们只需要如下实现
Object invokeWebEvent(){
return new ActionMethodInvocation(getWebObject(), getObjectEvent(), getInterceptors()).proceed();
}
就为所有WebObject加入interceptor堆栈, 完全不需要AOP的动态织入技术.
在witrix平台的设计中, 因为大量采用pull方案, 我们对于前后台交互方式采取的是完全开放的态度,
前后台的交互接口完全定义在web访问层上(即前台程序直接访问一个url获取数据), 尽量避免将系统架构的限制引入到应用程序设计中来. 确实,
Browser和Server之间的原始交互方式是受限制的, 狭窄的, 但是从系统设计的角度上说,
这正是异构系统集成和进行系统核心控制的最好场所, 任何试图独占该连接信道并在层层封装之后提供更加丰富的访问语义的努力在我看来都是可疑的.
分享到:
相关推荐
7. **jQuery与AJAX**:虽然.NET提供了一套完整的AJAX解决方案,但很多开发者依然选择使用jQuery库来处理AJAX请求,因为它的API简洁且兼容性好。jQuery的$.ajax()、$.get()、$.post()等函数使异步请求变得非常简单。 ...
本文将深入探讨Ajax中文乱码问题的成因,并提供一系列解决方案。 **一、问题原因** 1. **编码格式不一致**:服务器与客户端(浏览器)之间使用的字符编码格式不同,例如服务器使用GBK编码,而浏览器使用UTF-8编码...
总结来说,解决Ajax跨域访问问题有多种途径,选择哪种方式取决于具体需求、服务器支持以及安全性考虑。理解并掌握这些方法,能帮助开发者更好地应对实际项目中的跨域挑战。在开发过程中,确保遵循最佳实践,既能保障...
在网页设计和开发中,颜色选择器的运用广泛,例如在图像编辑工具、主题设置、配色方案选择等场景。一个优秀的颜色选择器应该具备易用性、可定制性和良好的响应性。Ajax技术的引入,使得颜色选择器可以在不打断用户...
**Ajax 乱码解决方案** Ajax 乱码问题在开发Web应用程序时经常遇到,尤其是在涉及到不同编码格式时。本文将深入探讨Ajax与字符编码相关的技术细节,并提供几种有效的解决策略。 首先,JavaScript处理字符的方式是...
该方案的主要特点是将业务流程控制和视图选择等工作从系统服务器端转移到 Ajax 引擎中完成。该方案的设计和实现可以简化 Ajax 框架的开发和应用,提高开发效率和系统安全性。 Ajax 框架配置方案的设计主要包括以下...
### Ajax跨域问题解决方案 #### 一、什么是Ajax跨域 **原理:** Ajax跨域问题的核心在于浏览器的“同源策略”。同源策略是一种安全措施,用于限制一个域名下的文档或脚本如何与另一个来源的资源进行交互。简单来说...
在前台通过动态添加script标签及src属性,表面看上去与ajax极为相似,但是,这和ajax并没有任何关系;为了便于使用及交流,逐渐形成了一中非正式传输协议,人们把它称作 jsonp 。 代码如下: html: <body> ...
本文将深入探讨JavaScript和Ajax跨域的原理,以及常用的解决方案。 首先,理解同源策略是解决跨域问题的基础。同源策略是浏览器为了保障用户安全而设定的一种机制,它规定了只有同源(即协议、域名和端口都相同)的...
Ajax乱码问题主要涉及到字符编码的处理,包括服务器端、客户端以及文件的编码设置。解决Ajax乱码问题的关键在于确保整个数据传输链路上的编码一致性。 1. **字符编码** - **UTF-8**:广泛使用的编码格式,支持多种...
AJAX(Asynchronous JavaScript and XML)是一种在无需重新加载整个网页的...同时,随着Web技术的发展,Fetch API和WebSockets等新特性也为异步通信提供了更现代的解决方案,但AJAX仍然是构建动态Web应用的基础之一。
简单整理的乱码处理方案,jquery的ajax解决UTF-8以及GBK的问题
- 《Ajax 探密 (Ajax Hacks ).rar》:这是一本关于Ajax技术深入实践的书籍,包含了多种Ajax技巧和解决方案。 - 《AJAX——新手快车道.rar》:适合初学者入门,快速掌握Ajax基本操作。 - 《AJAX开发简略[1].part1-5....
针对这个问题,"ajaxpool" 和 "ajax池" 提供了一种解决方案。 Ajax池是一种管理并发Ajax请求的方法,它通过控制并发数量来优化页面性能,防止过多的Ajax请求同时执行,从而避免浏览器资源耗尽引发的假死。在IE浏览...
【标题】:Ajax设计方案封装库 在Web开发中,Ajax(Asynchronous JavaScript and XML)是一种在无需刷新整个页面的情况下,能够更新部分网页的技术。Ajax设计方案封装库是将这些复杂的交互逻辑进行抽象和封装,以便...
**Ajax4JSF详解** Ajax4JSF 是一个开源...虽然现在有更多强大的JSF Ajax库可供选择,但对于仍在使用JSF 1.x的应用来说,Ajax4JSF仍是一个实用的解决方案。开发者应当根据项目的具体需求和技术栈选择最适合的Ajax库。
**Ajax 框架详解** Ajax(Asynchronous JavaScript and XML)是一种在无需刷新整个网页的情况下,能够更新部分网页的...选择合适的Ajax框架取决于项目需求、开发团队的技术背景以及对性能、易用性和可维护性的考量。
SSH+jQuery+Ajax框架在构建地区选择功能时,结合了后端开发的高效性和前端交互的用户体验,形成了一个强大的Web应用程序解决方案。SSH是Struts2、Hibernate和Spring三大框架的简称,它们各自承担着不同的职责。 **...
因此,开发者需要在实现高性能交互的同时,考虑这些问题并寻找合适的解决方案,如使用JSONP、CORS(跨源资源共享)技术解决跨域问题,使用服务器端渲染或预渲染来优化SEO。 总之,Ajax技术改变了Web应用的开发模式...
- **兼容性考虑**:对老版本浏览器提供备选方案,如使用jQuery的$.ajax()函数。 以上只是AJAX技术的冰山一角,真正的掌握需要不断实践和学习。通过阅读提供的"AJAX快车道.pdf",你可以深入了解更多的细节,提升你的...