OctService服务类

从以下几个方面来说吧,这次说的会有点长啊
设计:
思路:
作用:
目的:
问题:
为什么要设计这个?
它解决了什么问题?
是什么?
为什么?
怎么样?

OctService服务类,其实说这个,大家需要脑补一下,Octopus经过的太多版本的改造,才有了这个的诞生,也是伴随着需求不断的增加和对程序的优化,才渐渐有了这个东西
弄出来这个东西之后也让我稍微对面向对象 抽象 接口 之类的概念有些了解 。看来要深入一个东西并非一朝一夕的,需要不断的思考 使用 和总结,反正吧路程很艰辛,但是体验也很多
就想潜伏中的一句很有意思的话:革命者的爱情分外浪漫!是啊 让你心里想着,同时有见不到你心里的那个人,见到了又不能相认,那该是一种什么样的滋味儿。一见面就是激吻,啊啊啊
【就好比厕所就在旁边,肚里面憋着一泡屎,就是憋着,反正厕所在旁边,体会那个难受劲儿】这个时候也只有吻才能表达心中的想念吧,这也让我想起我和初恋女友的那个吻【预知详情请联系我】,无数个夜晚我都在回味那一个美好的时刻,情到浓时的那种滋味儿,是一种人生难得的体验,值得一生典藏啊。

OctService抽象了页面类,将一些公共数据的获取和初始化放在了这里,是为了一些Ajax请求用的
最初的Ajax请求要经过HttpCustom这个基类,但其实这些Ajax就是获得一些简单的操作,比如:收藏商品,加入购物车;没用必要让这些请求也经过页面周期这个步骤吧,
但是不经过页面周期,一些数据又获取不到:比如购物车的ID,货币ID 语言ID,还要知道用户是否处于登录的状态。所以OctService就是将这些数据的获取和初始化工作给提取出来了
这样Ajax一类的请求就不需要经过页面周期的步骤了【其实我就是这个目的】
而且OctService也可以做HttpCustom的基类
总之:有了这个东西Ajax请求和页面请求分开了,谁也不影响谁,各自独立



Post分离过程
Post事件从每个页面中分离掉了,页面代码变得干净清爽,就是像用了妇炎洁【我们也用妇炎洁,洗洗更健康--外国人口吻来读】
每个ashx页面中只有获取动作,get get 不停的get,【只执行Page_Load事件】不在处理用户Post请求过来的数据,比如用户结算
这些Post操作都被转移到了一个专门的Ashx中去了
好处:
1.每个页面专注于Get操作,根据参数展示不同的视图,专注于这一件事儿,不容易出错
2.便于调试
分离时候让这些操作都变得简单和易于控制,还是很不错的



Page_PreLoadInit像鸡肋一样被丢弃了
当初设计它的时候觉得非常有用,解决了一些页面数据获取的问题,但是后来觉得它很讨厌,也很啰嗦,竟然很多页面都要提前获取一些相同的数据
为什么不在一开始将这些数据都获取到呢?所以后面设计了OcService这个类,自然而然的这个事件就丢弃了

【思路】-OctService服务类的更多相关文章

  1. Liferay7 BPM门户开发之34: liferay7对外服务类生成(RestService Get Url)

    在liferay7中开发不依赖Service Builder的对外服务类,非常简洁,只需要2点注解: 在类的前部定义: @ApplicationPath("/PathXXX") 方 ...

  2. Android 服务类Service 的详细学习

    http://blog.csdn.net/vipzjyno1/article/details/26004831 Android服务类Service学习四大组建   目录(?)[+] 什么是服务 服务有 ...

  3. Nmap扫描教程之DNS服务类

    Nmap扫描教程之DNS服务类 Nmap DNS服务类 DNS(Domain Name System,域名系统)的作用就是将主机名解析为相应IP地址的过程. 通常主机域名的一般结构为:主机名.三级域名 ...

  4. Android 服务类Service 的具体学习

    上一篇说到了通知栏Notification,提起通知栏,不得让人想到Service以及BroadcastReceive,作为android的4大组建的2个重要成员,我们没少和它们打交道.它们能够在无形 ...

  5. C# 利用VS自带的WSDL工具生成WebService服务类

    C# 利用VS自带的WSDL工具生成WebService服务类   WebService有两种使用方式,一种是直接通过添加服务引用,另一种则是通过WSDL生成. 添加服务引用大家基本都用过,这里就不讲 ...

  6. 第十二节: 总结Quartz.Net几种部署模式(IIS、Exe、服务部署【借助TopSelf、服务类】)

    一. IIS部署 比如在MVC框架中集成了Quartz.Net定时调度,此时该调度系统会随着MVC框架被挂在IIS下,IIS会进程回收,所以大部分开发都会遇到Quartz挂在IIS下一段时间不好用. ...

  7. 微信小程序个人/企业开放服务类目一览表

    微信小程序个人/企业开放服务类目一览表   微信小程序个人开放服务类目表 服务类目 类目分类一 类目分类二 引导描述 出行与交通 代驾 / / 生活服务 家政.丽人.摄影/扩印.婚庆服务.环保回收/废 ...

  8. WorldWind源码剖析系列:地形瓦片类TerrainTile和地形瓦片服务类TerrainTileService

    地形瓦片类TerrainTile 用来抽象封装用户漫游中所请求的地形瓦片数据类型. 地形瓦片服务类TerrainTileService提供了从BIL(Binary Interleaved by Lin ...

  9. Nmap扫描教程之网络基础服务DHCP服务类

    Nmap扫描教程之网络基础服务DHCP服务类 Nmap网络基础服务 网络基础服务是网络正常工作的基石,常见的网络基础服务包括DHCP服务和DNS服务.其中,DHCP服务用来为计算机动态分配IP地址:D ...

随机推荐

  1. 介绍MFSideMenu左右滑动控件的使用

    昨天刚写完侧滑菜单的实例,今天在CocoaChina网站上看到一篇非常好的侧滑菜单设计案例文章,分享给大家.http://www.cocoachina.com/macdev/uiue/2013/071 ...

  2. nfs 配置

    服务端1.打印系统版本cat /etc/redhat-release2.检查并安装NFS服务rpm -aq nfs-utils portmap rpcbindyum grouplistyum grou ...

  3. 20161127-emmagee

    Android 自动化测试 Emmagee Emmagee 是一个性能测试小工具 用来监控指定被测应用在使用过程中占用机器的CPU, 内存,流量资源的性能小工具 阅读目录 Emmagee 介绍 Emm ...

  4. c语言简易文法

    <程序>→<外部声明>|<程序><外部声明> <外部声明>→<函数定义>|<声明> <函数定义>→< ...

  5. maven添加sqlserver的jdbc驱动包

    http://search.maven.org/中没有sqlserver的jdbc驱动,所以需要本地安装sqljdbc的jar包,然后再在pom里面引入 Step 1 在微软官网下载sqljdbc的j ...

  6. heart beat/心跳包

    为什么需要heart beat/心跳包?因为tcp keep-alive不能满足人们的实时性的要求,就是这么简单. socket的长时间连接的话,是需要心跳包.心跳包就是维持双方的连接,每隔一段时间发 ...

  7. Indexed 和 Stored 的区别

    都是针对field的: indexed表示需不需要建立索引,以便之后对这个field进行查询:        stored表示需不需要随索引同时存储这个field本身的内容,以便查询时直接从结果中获取 ...

  8. Mifare系列3-卡的能源和数据传递(转)

    文/闫鑫原创转载请注明出处http://blog.csdn.net/yxstars/article/details/38080175 在MIFARE卡中,能量和数据通过天线传输,卡中天线为几匝线圈,直 ...

  9. python走起之第九话

    协程 协程,又称微线程,纤程.英文名Coroutine.一句话说明什么是线程:协程是一种用户态的轻量级线程. 协程拥有自己的寄存器上下文和栈.协程调度切换时,将寄存器上下文和栈保存到其他地方,在切回来 ...

  10. 一种更清晰的Android架构(转)

    一种更清晰的Android架构   一种更清晰的Android架构 原文链接 : Architecting Android…The clean way? 译者 : Mr.Simple & So ...