题的提出 :
jCT模板属于前后台分离的设计.
对于前后台分离的设计.
S根据B提出的请求,发送原始数据,S不需要对表现层有任何控制,降低了B,S的耦合度.
这种降低了B,S的耦合度方法,本质上是降低了 数据内容 上的 耦合度 ,仅仅把表现层的控制数据分离出去了.
由于请求和数据直接影响到表现,表现 是 业务逻辑 的最直接体现,但是 这两个词不能画等号.因此我们用表现逻辑 这个词.暗示表现和业务逻辑是关联比较密切的.
当 表现逻辑 变化的时候,势必要 改变 后台数据内容 的组合结构,我们的问题就是
如何降低前后台 表现逻辑( 业务逻辑) 上的耦合度
附加举例 说明问题:
常见的页面上有多种访问(按日,月,年或分类)排名,如果我们要增加或减少一个排名规则的话,表现 是要改的,后台 数据内容 也要同期改,这就是耦合度高的问题.
当然,对于新增的表现,采取多次和后台通讯也是一种解决方法,不过这增加了通讯的次数.
我们要达到只需要 改 表现,不用改 后台 ,并且不增加通讯次数的目标.
问题分析 :
表现逻辑 最终体现在原始数据的变化上.
业务逻辑对数据的细粒度化是比较容易实现的,就是把数据的请求最小化,然后把多个请求 获得的数据组合输出就行了.这在设计中是常见的.最简单的就是按请求的次序 请求队列 ,输出关联数组结构 的数据就行了.
那要解决的问题就是,前台如何在一次通讯中发出 请求队列 ,后台如何正确解析 请求队列 的问题.
解决方案 :
这里我直接给出我的方案,
利用POST方法和GET参数的配合.
在实际使用POST和GET方法的时候我们通常是用参数名=值 ,这种值对 的形式提交,事实上http协议并没有限定死这种形式,我们这种形式对http协议来说只不过是一串字符串罢了.用ajax 方法提交数据的时候是可以直接传送以JSON形式 的数据的,这就是纯字符串了.JSON 对数据的表现能力是毋庸置疑的.经后台解析后才对象化的.
我们可以把 请求队列 以 JSON 形式与后台通讯,后台完成 请求队列 解析.当然对于ajax 来说使用POST 方法
无疑是很好的,因为POST 方法其实是兼容GET 的,ajax 请求中的url 参数就是GET 方法的实现.那GET参数 在这里有什么用途呢?共用参数 的传递(这个语言描述就到这里,做个应用的朋友应该已经明白了).
ajax POST的数据是JSON字符串格式,比如:
我一直用PHP编程,php获得POST过来的JSON数据是很容易的
到此 请求队列 的数据通信解决了,后台获取解决了,解析呢?这恐怕要和你的应用有关了.解决起来类似于如下结构
switch..case 就是细粒度的实现了.可以看出,在业务逻辑确定的情况下,表现只需要改变请求的队列的组合 就可以一次通讯获取 数据 了.
==========ps============
很遗憾,由于人事变动,我不再参与www.91mh.net这个项目了,项目负责人又回到了古老的编程方法,这个网站已经不采用我的技术了,回头有新的站我再给出新的地址吧。