当前位置:编程学习 > JAVA >>

[散分讨论]页面上多个功能模块隐现、排序如何实现

各位大牛门,小弟今天被人问了一个问题,不知怎么回答,希望各位能参与讨论。

如果一个页面上有 A, B, C, D, E, F 几个功能模块,并按此顺序排列,并且每个功能模块上都有一个小“X”,点击后可关闭该功能(即不显示),关闭后也可再将它打开。现有一用户登陆后,关闭 B, E 两个功能,剩下 A, C, D, F 功能;随后又将功能的显示顺序改为 D, A, F, C。当些用户下次登陆时,能够按照他之前的设定显示:D, A, F, C。

小弟之前的想法是:给每个功能设定一个状态值,当用户关闭(或开启)某功能时,将此状态值改变,然后在页面上进行判断是否显示。这样,当用户下次登陆时也可以根据状态值来显示。

但这样做带来了两个问题:
1.页面上虽然能判断显示,但是 A, B, C, D, E, F 各个功能模块的代码都还在页面上(有没有某种方式能够只有显示的代码,不显示的功能代码也不在页面上出现);
2.不能进行排序(这是基本要求的功能)。

希望各位大牛们能说出自己的看法,就算只是某个局部的想法也好!

希望能够在大家的意见中整合出一个比较好的方法。 --------------------编程问答--------------------
引用
但这样做带来了两个问题:
1.页面上虽然能判断显示,但是 A, B, C, D, E, F 各个功能模块的代码都还在页面上(有没有某种方式能够只有显示的代码,不显示的功能代码也不在页面上出现);
2.不能进行排序(这是基本要求的功能)。


问题1方案.  想要页面上不显示被关闭功能的代码。。剩下就是js中或者后台中。
a。如在js中,那可以通过页面引入js文件(此js文件中包含了动态构造页面所有模块,包括从后台取数据和布局),这样能屏蔽各模块代码。。
b。如在后台,那将所有的动态构造全部放在封装在类中,前台通过js来判断。。

问题2方案.  
将模块名称A,B,C,D...放入一个二维数组(二维数组第一维:模块名称,第二维:状态[是否关闭])进行排序。。每次关闭或者开启某个模块 ,都调用排序方法依照二维数组中第二维:状态为开启的数据第一维模块名称 来排序,然后再调用问题1中的方案有序的动态构造。。出来的就是排序好的了。。。

--------------------编程问答-------------------- 1.可以用ajax调用后台程序检索出所有显示功能的代码,然后通过innerHTML方式加载到前台。当然也可以在前台JSP中直接调用一个后台方法过滤掉所有状态关闭的功能。

2.如果你功能的数据是存在数据库中可以设置一个序号进行排序,假如C的序号为3,你想让它在第2处显示,你只需要把原来的序号为2的改成3,序号3的改成2 --------------------编程问答-------------------- 如果设计的话
希望高内聚、低耦合,所以ABCD这些模块最好是分开,各做各的,这样便于管理。
这样的话,需要什么模块,加载什么模块,通过数据库中模块表来定义

假如模块表为PART,那么PART中有字段去排序和判断是否关闭,这样的话,程序员只需要去关心模块这个对象的状态就可以了
如果关闭和排序是对用户的话,即不同的用户,其排序和是否关闭不同的话,那就在用户表中建立字段,将排序和关闭入库,这里有很多入库方式(可以一个字段,可以两个字段),当然要和part建立关联
这样,用户登录后只要去查询这个就可以了


实现的时候
可以利用extJS来做,已经封装好的处理,排序关闭什么的都有,但是可能你又要学一段时间

从你的问题上分析

你给模块加状态,同时就给他加上排序的字段就可以了

功能代码隐藏,其实你把功能处理都写在后台,然后JSP页面就是一个纯的html编码,这样就不会出现功能代码被看到的问题了 --------------------编程问答-------------------- --------------------编程问答--------------------
引用 1 楼 kouyisc 的回复:
引用
但这样做带来了两个问题:
1.页面上虽然能判断显示,但是 A, B, C, D, E, F 各个功能模块的代码都还在页面上(有没有某种方式能够只有显示的代码,不显示的功能代码也不在页面上出现);
2.不能进行排序(这是基本要求的功能)。


问题1方案.  想要页面上不显示被关闭功能的代码。。剩下就是js中或者后台中。
a。如在js中,那可以通过页面引入js文件(此js文件中……

这个比较靠谱啊 --------------------编程问答--------------------
引用 1 楼 kouyisc 的回复:
引用
但这样做带来了两个问题:
1.页面上虽然能判断显示,但是 A, B, C, D, E, F 各个功能模块的代码都还在页面上(有没有某种方式能够只有显示的代码,不显示的功能代码也不在页面上出现);
2.不能进行排序(这是基本要求的功能)。


问题1方案.  想要页面上不显示被关闭功能的代码。。剩下就是js中或者后台中。
a。如在js中,那可以通过页面引入js文件(此js文件中……


两个问题是为了解决同一个问题:隐现功能,并可对功能排序储存,最好页面上没有不显示的模块的代码。
麻烦合起来讲 --------------------编程问答--------------------
引用 2 楼 wangjiangbo2 的回复:
1.可以用ajax调用后台程序检索出所有显示功能的代码,然后通过innerHTML方式加载到前台。当然也可以在前台JSP中直接调用一个后台方法过滤掉所有状态关闭的功能。

2.如果你功能的数据是存在数据库中可以设置一个序号进行排序,假如C的序号为3,你想让它在第2处显示,你只需要把原来的序号为2的改成3,序号3的改成2


那页面上要怎么写呢 --------------------编程问答-------------------- 顶起来,别沉啦

还有哪位大牛有其他的方法啊
补充:Java ,  Web 开发
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,