该帖已经被评为良好帖
|
|
---|---|
作者 | 正文 |
发表时间:2008-04-25
下载了一个看了看,整个架构倒是完整,内容也够丰富。
楼主的代码好像没有把数据和表现彻底分离呀! 首先就是jsp文件的代码里面含有大量的html代码呀! 再有就是html文件代码里基本上都是独立的html+javascript function, 可是你这个还是B/S的系统呀! 没有把B/S分离呀! 就算只评价html文件,可以算做独立的B系统,可是都是独立的文件呀!这不能为整体设计带来更多的便利呀! |
|
返回顶楼 | |
发表时间:2008-04-25
achun 写道
下载了一个看了看,整个架构倒是完整,内容也够丰富。
楼主的代码好像没有把数据和表现彻底分离呀! 首先就是jsp文件的代码里面含有大量的html代码呀! 再有就是html文件代码里基本上都是独立的html+javascript function, 可是你这个还是B/S的系统呀! 没有把B/S分离呀! 就算只评价html文件,可以算做独立的B系统,可是都是独立的文件呀!这不能为整体设计带来更多的便利呀!
|
|
返回顶楼 | |
发表时间:2008-04-26
to achun:
刚才看了一下你的jCT,大致知道你说的意思了,,,真是背景不同思想对不上啊:-) 我理解jCT的方式相当于客户端的jsp,一个HTML模版 + 一个ajax数据 ==解析==》一个可显示页; 我这个框架不是你这种思路。 7WX中,一个HTML页是就一个小应用,封装的JS方法可以与服务器通讯并获取后端数据,再操纵HTML页改变其局部显示。“局部”有时是占位符号,如显示一棵树组件时;有时是一段(不是整页)HTML模版,如显示列表时。“后台数据”在这其中是完全独立的,是Server和Browser之间的唯一耦合物。 |
|
返回顶楼 | |
发表时间:2008-04-26
哦明白了,我们说的是不同的东西。
|
|
返回顶楼 | |
发表时间:2008-04-26
achun 写道
哦明白了,我们说的是不同的东西。
|
|
返回顶楼 | |
发表时间:2008-04-26
楼主果然很不谦虚啊,哈哈,你的方案我有空看看
个人觉得JSF用起来很费劲,在s做b端的事,如果想在s端封装b端的展现,就直接在b端用js算了,何必再增加网络流量。现在我做B-UI全部都是html和js,没有tag和<%%>用ext后就不需要struts来进行页面跳转了 spring以前从来没用过,struts用的一直是1.1的老版本。我所看到的一些开发团队, 虽然用到了spring/struts等框架,但开发过程中MVC这块还是一片混乱,很少看到代码框架清晰的案例。我个人比较排诉spring和最新的struts,估计新人的学习成本够呛 |
|
返回顶楼 | |
发表时间:2008-04-26
leebai 写道 感觉楼上两位对 Browser base 的UI开发(下面简称B-UI,对应S-UI:jsp,jsf等Server base 的UI开发)所能达到的程度并不了解。 在正真的B-UI应用中,Browser自己负责界面构造和界面跳转,Server只负责提供business logic 访问,也就是说[size=small; color: #ff0000;]Server上根本就不需要S-UI的Web层(虽然还是HTTP访问),没有所谓的Controler,也就是说MVC不再是真理,Spring MVC/Struts之类的Web层框架完全没有必要[/size]。 “server pages”开发者理解B-UI时最大的思路陷阱就是“Web层”,MVC。 B-UI(Ext等界面组件+HTML+JS+ajax)是S-UI(jsp,jsf,asp,asp.net)的完全等价物,不存在什么功能jsf能做, B-UI不能做的问题。 jsf需要结合Ext、ajax,只能说明jsf实现某些功能很费劲,只好借用B-UI的现成技术。 保留MVC的空架子有时候是减少风险,万一碰到特别恶心的需求还有退路。 从结构上来说,即使没有Controller层,business logic层不能直接暴露给客户端调用(由此我反对使用DWR框架),也就是说,还是要有一层Fasade,所以还是留着好,虽然名字还叫Controller但是主要职责已经变了。为什么说主要职责,是因为Controller层还是有它的用的,传统的方式比如自定义tag用来“写”(生成)JS的local数据要比发Ajax请求效率要高得多,应用场景是界面上的下拉框不需要频繁从服务端取数据,大多数情况都是取一次的,就没必要用Ajax请求。 或者这么说吧,如果页面上有10个下拉框,而且内容都不能写死,都要从服务端取,纯粹的Ajax方案在这种场景下性能反而是倒退的,因为http请求发得太多了。目前觉得还是结合传统的方式更好一点,可以一个ftl(或jsp)+一个JS文件,ftl(或jsp)中的代码可以很少,比如都是些取数据的tag。进可以完全的不用tag语法,退可以随时大量用传统语法解决变态需求。 |
|
返回顶楼 | |
发表时间:2008-04-26
icewubin 写道 或者这么说吧,如果页面上有10个下拉框,而且内容都不能写死,都要从服务端取,纯粹的Ajax方案在这种场景下性能反而是倒退的,因为http请求发得太多了。目前觉得还是结合传统的方式更好一点,可以一个ftl(或jsp)+一个JS文件,ftl(或jsp)中的代码可以很少,比如都是些取数据的tag。进可以完全的不用tag语法,退可以随时大量用传统语法解决变态需求。 一次请求获得多种数据, 分别把数据绑定在不同的 "数据消费者" 上. |
|
返回顶楼 | |
发表时间:2008-04-26
dboylx 写道 icewubin 写道 或者这么说吧,如果页面上有10个下拉框,而且内容都不能写死,都要从服务端取,纯粹的Ajax方案在这种场景下性能反而是倒退的,因为http请求发得太多了。目前觉得还是结合传统的方式更好一点,可以一个ftl(或jsp)+一个JS文件,ftl(或jsp)中的代码可以很少,比如都是些取数据的tag。进可以完全的不用tag语法,退可以随时大量用传统语法解决变态需求。 一次请求获得多种数据, 分别把数据绑定在不同的 "数据消费者" 上. 你说的我也想过,但是没有深入,也没有看到过什么介绍,感觉自己冒然深入开发这个模块成本不低,主要是现有方式时间成本和时间成本非常低,所以暂时利用tag了。 顺便询问一句,又没有好的实践方法,能很方便(低开发时间成本)的把数据绑定在不同的“数据消费者”上呢? |
|
返回顶楼 | |
发表时间:2008-04-26
我有一朋友做的AJAX项目里有用到类似的东西,
称为"数据岛"模式, 还有,LZ的项目也类似, 很多种业务被一次请求, 同时服务多个业务组件. 但数据同时也可以很灵活的通过AJAX动态的响应客户的行为, "数据岛" 用Observe向外抛出的事件注册接口, 各各组件只要把自己关心的部分并注册监听, UI组件不用关心数据何时与为何更新的数据,实现动态的响应客户的请求的一种小方法。 不过对于长年使用JSP,Struts,JSF的团队 要转变方法与强大的思维惯性做斗争是更为麻烦的事情。 |
|
返回顶楼 | |