`
zz78_gang
  • 浏览: 6896 次
  • 性别: Icon_minigender_1
  • 来自: 上海
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

怎样使用Ajax 简化我们的分层设计

阅读更多
不打算写太长,只写一个方面:简化我们的分层设计,反馈好的话,接着写...

正常情况下,我们的系统 分为 entity dataaccess business ui 四层,这个我就不罗嗦了.

考虑如下常见情况(举个最简单的例子)
比如有两张表: User, Experience. Experience 有一个外键,指向User


考虑没有Ajax的情况,要实现这样一个简单的页面:某个User的详细信息页面,页面需要同时列出 User信息,及这个User的 Experience信息。

正常情况,我们实现此页面的逻辑为:
数据库存储过程级别: 使用 表之间的 Join 方式,输出 User + Experience 的复合信息。
Entity Layer:将数据库返回来的数据,分解,分别映射到 某个 User 及 Experience 集合。
Business Layer : 组合两种类型的 Object 返回给页面
UI Layer: 页面读取数据...

说明:我写的这是比较通用的方式,自然有很多其他实现方式,但是,不管怎样,必然会涉及 同样一次操作涉及多种对象,导致 服务器端 要花很多时间处理 这些对象之间的关系。如上的例子,只涉及到 2 张表,1 个级别的关联,如果实际情况 超过 2 张表,超过 1 个级别呢?...





合理应用 Ajax,我们可以完全避免此类情况的出现,任何原子性的操作,只涉及到一种对象
还是对上面的例子:某个User的详细信息页面,页面需要同时列出 User信息,及这个User的 Experience信息。

应用Ajax我们可以怎么做呢?
首先直接输出 User 的详细信息,页面获取 User 的id 之后,再 Ajax 请求 其 Experience 信息。
这个过程,相信大家对比一下,很轻松就可以发现如下几个优点:
1. 整个过程 不需要浪费 服务器资源处理对象之间的关系
2. 每次请求,只涉及一个类型的对象
3. 无论涉及多少张表,及 多少张表之间的关联,通过这种方式,均特别容易实现
4. 任何 layer 的设计,只需要正对一种对象 的 (增,删,改,查...)。
5........


最近写了三个站点,按时间先后:
1. 自己的站点:http://www.city366.com/ 纯 Ajax 网站,整个网站只有一个页面(site map 除外,那不是给人用的,是为SEO做的).如果你打开source code,可以发现,几乎没有任何 html 代码,全部通过js创建 html objects.

2. 公司的项目:http://www.backofmyhand.com/ ,也是纯 Ajax 功能站点。 写了很多控件 scroll bar , 100行js代码+ css 实现的一棵 tree...,四个级别的缓存 DB-->XML-->Cache-->Client ......

3. 自己的站点(还没做完): http://inn.city366.com/本来是打算借这个项目 尝试 SAAS 的,推广了一段时间后发现,国内的用户 至少5年后才会 认识SAAS,使用SAAS不知道要到 猴年马月,尝试基本宣告失败。
站点3,也写了自己写了个日历,尝试了很多新的东西,另外 http://inn.city366.com/housedetail.aspx?houseid=1 这个页面,实现了如上的事例 (先显示房子信息,然后 Ajax 调用订单,反映在右侧的日历上)



谢天谢地,不知不觉也罗嗦了一大堆...



分享到:
评论
2 楼 i_love_sc 2007-08-08  
如果业务比较复杂的话,这种单映射作用也不是很大。比如要在服务器端做逻辑,做验证,还是一样要把数据从数据库里面取出来。
1 楼 leyen 2007-08-08  
http://www.city366.com/ 这个站点不错,但是功能上是不是太追求ajax了,我觉得有些超链接还是不用ajax技术好。

相关推荐

    AJAX 设计模式

    **AJAX 设计模式** AJAX(Asynchronous JavaScript and XML)是一种在不刷新整个页面的情况下,通过后台与服务器异步交换数据并更新部分网页的技术。它显著提升了用户体验,因为用户无需等待整个页面重新加载,只需...

    ASP.NET-Ajax程序设计

    这包括学习如何使用ScriptResource.axd和WebResource.axd处理动态脚本资源,以及如何通过ScriptManagerProxy控件在分层页面结构中管理Ajax请求。 在实际项目中,你可能会遇到跨域问题,这时需要了解JSONP(JSON ...

    Professional_Ajax

    6. **Ajax设计模式**:书中可能会讨论如何构建可维护、可扩展的Ajax应用,包括分层架构、模块化设计和状态管理。 7. **性能优化**:包括减少HTTP请求、缓存利用、延迟加载等方法,以提高Ajax应用的性能。 8. **...

    用购物车,Servlet的基本原理,Ajax增强用户体验

    Servlet的基本原理 使用Ajax增强用户体验 使用分层思想进行程序设计 使用session保存用户和购物车信息 使用面向对象编程进行实现功能开发 能够使用JDBC实现数据库访问 能够使用EL+JSTL简化页面布局

    Ajax 改造第 1 部分使用 Ajax 和 jQuery 改进现有站点

    jQuery是一个流行的JavaScript库,它简化了JavaScript的使用,包括对Ajax操作的支持。 在【描述】中提到的“模式对话框”是一种用户界面设计技术,用于在主页面之上显示一个全屏或半屏的遮罩层,通常用来展示详细...

    基于Ajax和J2EE的Web应用架构研究与设计.pdf

    ### 基于Ajax和J2EE的Web应用架构研究与设计 #### 一、Ajax技术介绍 ##### 基本概念 Ajax(Asynchronous JavaScript and XML)是一种用于创建交互式网页应用的技术,它整合了多种传统Web技术的新用法。在传统的Web...

    三层+EasyUI+Ajax

    三层架构是软件设计的一种分层模型,包括表现层(用户界面)、业务逻辑层(业务规则处理)和数据访问层(数据库交互)。EasyUI则是一个基于jQuery的UI框架,提供了丰富的组件和样式,用于快速构建美观的前端界面。...

    简单的SSH三层架构+Ajax实现Google自动搜索极为相似版+直接Excel导入数据库

    SSH三层架构是指模型(Model)、视图(View)和控制器(Controller)的分层设计。 1. **Struts**:作为MVC框架的核心,负责处理HTTP请求,通过Action来调度业务逻辑,并返回相应的视图。它提供了拦截器...

    ASP.NET AJAX深入浅出系列课程(22):利用Microsoft AJAX Library开发客户端组件(中)

    在这个“ASP.NET AJAX深入浅出系列课程(22)”中,我们将聚焦于利用Microsoft AJAX Library来开发客户端组件,特别是从中级层面进行探讨。 首先,Microsoft AJAX Library是ASP.NET AJAX的核心组成部分,它包含了一...

    面向.NET开发人员的Ajax平台策略.

    2. **jQuery和jQuery UI**:虽然不是.NET框架的一部分,但jQuery是一个广泛使用的JavaScript库,它简化了DOM操作、事件处理和Ajax交互。jQuery UI则提供了可定制的用户界面组件,如对话框、日期选择器和拖放功能。 ...

    ssi框架,ajax,json项目小例子

    这个组合常用于企业级应用开发,具有良好的分层架构和模块化设计。 在描述中提到,"适宜初学者人群",学习SSI框架和AJAX的JSON交互实例,可以作为理解更复杂如SSH框架的垫脚石。一旦掌握了这些基础知识,开发者就...

    Getting Started with Ajax

    在本篇文章中,我们将详细介绍如何开始使用Ajax进行开发。Ajax(Asynchronous JavaScript and XML)是一种在无需重新加载整个网页的情况下就能更新部分网页的技术。它通过在后台与服务器交换数据来实现这一功能,...

    ASP.NET AJAX 开发

    10. **最佳实践和设计模式**:在实际开发中,掌握一些最佳实践和设计模式,如分层架构、MVP(Model-View-Presenter)或MVVM(Model-View-ViewModel),可以帮助构建可维护、可扩展的ASP.NET AJAX应用。 通过深入...

    基于Struts+Ajax的学位论文管理与服务系统的设计和实现

    ### 基于Struts+Ajax的学位论文管理与服务系统的设计和实现 #### 概述 本文讨论的主题是“基于Struts+Ajax的学位论文管理与服务系统的设计和实现”,这是一种面向高校需求的集成化管理系统。该系统利用了Struts...

    Wrox.Professional.Ajax.2nd.Edition

    5. **Ajax设计模式**:讲解在开发Ajax应用时常见的设计模式,如分层架构、Model-View-Controller(MVC)模式,以及如何有效地管理状态和避免跨域问题。 6. **性能优化**:介绍如何提高Ajax应用的性能,包括减少HTTP...

    AJAX_In_Action.rar

    8. **设计模式**:书中会介绍一些使用AJAX的最佳实践和设计模式,如模块化、分层架构等,这些可以帮助构建可维护和可扩展的AJAX应用。 9. **AJAX在实际应用中的应用**:AJAX不仅用于表单提交和数据获取,还可以实现...

    net 分层架构实战

    在.NET分层架构实战中,我们将通过一系列文章深入探讨如何构建一个基于分层架构的简单留言本系统——NGuestBook。本系列旨在帮助读者理解和掌握分层架构的基本概念及其在实际项目中的应用。 #### 二、需求分析与...

    18种响应式分层动画jQuery幻灯片特效

    jQuery库是一个广泛使用的JavaScript库,它简化了DOM操作、事件处理、动画效果和Ajax交互。 幻灯片是一种常见的网页组件,用于在有限的空间内展示多张图片或内容。这个特效的独特之处在于它的分层动画。在每一组...

    ajax的基础教程(上)

    这个基础教程分为两部分,我们将首先探讨Ajax的核心概念和技术要点。 ### 1. Ajax的核心组成部分 - **JavaScript**: 是实现Ajax交互的主要脚本语言,负责创建XMLHttpRequest对象,发送请求以及处理服务器返回的...

    jQuery分层3d轮播

    它的API设计易于理解和使用,使得开发人员能够快速地创建动态和交互性的网页。jQuery的核心特性包括选择器、DOM操作、事件处理和动画效果,这使得3D轮播的实现变得相对简单。 **二、3D轮播实现原理** 3D轮播的关键...

Global site tag (gtag.js) - Google Analytics