动态菜单
动态菜单与权限的绑定实现如何优化的?
非iframe时如果想要渲染菜单,每个用户的权限不同,渲染出来的菜单也不同,我假设每次根据权限去寻找菜单,推出菜单列表给前台渲染,将该此渲染结果与用户绑定缓存起来
那么:1.每次对权限的操作要全量刷新同类缓存吗
2.就算缓存起来,每次请求也需要重新渲染菜单块
3.如果将渲染成功的页面缓存,那么如何标识什么时候需要被重新渲染
第一次考虑动态菜单与权限的绑定…没能有好的方案,大佬们如何实现的希望分享一下…
菜单与权限是个低频操作,且管理员人数有限,个人感觉没必要考虑过多,
单纯缓存数据可以简单粗暴CURD后清空所有符合条件的缓存
可以考虑CURD后删除缓存页面,或读取页面时根据时间判断,页面的生成时间和相关表的最后修改时间做对比
1、生效问题
技术不能解决所有问题,产品逻辑约定好:重新登录,菜单才会生效
2、缓存问题
上面两种数据缓存了,动态生成菜单就是靠代码控制下了
用户增加虽然很频繁,菜单或角色(如果有角色这么个东东)的改动应该不会很频繁
新增开通权限和分配对应菜单,对原有菜单和权限没有影响,此时对旧缓存无需操作
具体问题还是要具体分析
新增菜单没关系,用户默认就是不可见
修改或删除菜单,此时绝大部分人的缓存都要修改,可以强制清空所有缓存,或者筛选出有此菜单的用户或角色清空缓存
我之前的做法是,每次刷新页面都会读取缓存,没有缓存去数据库找然后再缓存,因为后台修改会清空缓存,所以没有单独的用户登录后设置缓存,这样可以达到有修改实时改变。