前题条件:
1、已通过配置将Session的存放位置放置于数据库中。
2、现有不同的登陆用户,其所分配的权限菜单不同。
问题:
如图,左边的这个是树型的导航菜单,而右边部份则是功能地图的快捷菜单,其对应的地址是:
主页面:default.aspx
左边树型菜单:default_menu.aspx
右边快捷菜单:default_taskmenu.aspx
而现在这两个页面,都是通过iframe显示在defaut.aspx页面下的。由于左边的树型菜单和弹出来的功能地图菜单其实是同一数据源(只是显示方式不同而已),但因为是放在两个页面中的,所以在绑定显示的时候,需要读取两次数据库。
现在我不想频繁的读取数据库(因为弹出的功能地图会被多次关闭与弹出,这样就会多次读取数据库),所以把这个菜单的数据源(DataTable)放到了Session中,因为我的Session也是保存在数据库中的,而且客户端会每20分钟向服务器端发出一次请求,所以只要客户端浏览器不关闭,Session就不会丢失。但我有几个不是很明白的地方,希望大家能够指点迷经。
不明之处:
1、我如果直接读数据库的效率和从Session中取数据源(Session也是保存在数据库中的)的效率有什么不同?这不都是从数据库中读取数据吗?
2、如果Session保存在进程中的话,这样会很消耗服务器的内存,但我将Session放到数据库中之后,这种方式是否妥当?
3、如果由你来设计这个功能,你会怎么搞?