具有状态保持机制的EPG系统研究与实现(1)(2)
2014-10-30 01:08
导读:图2 程序堆空间使用方式示意图 菜单状态保持也可以认为是程序对当前运行时环境的保持,受到汇编语言中函数保存现场机制的启发,EPG各级菜单也可将自

图2 程序堆空间使用方式示意图 菜单状态保持也可以认为是程序对当前运行时环境的保持,受到汇编语言中函数保存现场机制的启发,EPG各级菜单也可将自己的所有状态信息保存到类似的堆空间里,当各级菜单返回时从堆空间中取出属于自己的那部分数据,这样就实现了状态恢复的功能。3 状态保持机制实现与应用3.1 状态信息堆栈的构造与实现Web应用程序的开发与运行环境与汇编语言程序的开发与运行有着根本的区别,web程序无法像汇编程序那样操纵自己运行时的内存空间,为了实现菜单状态保持的功能,我们有必要自行构造一个类似的堆栈空间用来保存各级菜单的运行状态。在web开发中有三种数据保存形式:①保存到服务器端的SESSION中;②保存在HTML表单/URL中;③保存在客户端的Cookie中。三种方式各有优劣,第一种方式依靠服务器的存储空间,部分无需让客户端知晓的数据就可以不必在网络中传输了;第二种方式会把所有的数据在网络中传来传去,不占用任何一方的存储空间;第三种方式利用客户端的存储空间,服务器端程序对Cookie实施有效管理。考虑到IPTV系统多采用分布式服务器的结构,第一种方式将数据保存在SESSION中会对分布式结构造成一定的障碍,所以尽量不会考虑这种方式。在实际工程中,我们使用HTML表单元素当作堆栈空间用来保存状态信息,形如图3所示:

图3 web程序的状态堆栈空间 图3所示为用户经过 menu1 和 menu2 进入 menu3 后状态堆栈的情况,其中 menu_stack 与 state_stack 是两个模拟的栈,左边为栈底,后边为栈顶,栈元素之间使用特殊字符“*”分隔,我们在服务器端和客户端分别用 PHP 和 JavaScript 实现了一组函数对这种堆栈进行操作。 menu_stack 中保存了用户所经过的菜单路径,state_stack 记录了每个菜单对应的状态信息,图3中 state1 与 state2分别是menu1与menu2的状态信息,由于状态信息可能会包含共2页: 1 [2] 下一页 论文出处(作者):
(科教论文网 lw.NsEac.com编辑整理) 密文数据库加脱密引擎的设计与应用
在J2ME/MIDP中实现图像旋转