文档章节

web后台根据权限控制按钮显示/隐藏的方案

dubox
 dubox
发布于 2017/12/29 14:53
字数 388
阅读 14
收藏 0
点赞 0
评论 0

      上午朋友问我一个问题:他用ajax 请求服务端判断权限,根据服务端返回来隐藏没有权限的按钮,这样有一个问题就是页面加载后按钮会闪一下。

       这个问题我很自然的就想到:那就把按钮默认都隐藏,ajax 判断完之后再显示有权限的按钮。。。

       这是一个成本比较低的办法,但不是个好办法。

       吃完饭后,我又想了一下这个问题,想到了一个还不错的办法:

在项目的公共头加一个外部 css,连接到一个后端地址 如:

<head>

<link rel="stylesheet" type="text/css" href="/getCssForAuth.php" >
</head>

在 getCssForAuth.php 中将当前用户的所有权限 和按钮的 class 对应,输出一段 css 来控制按钮的显示和隐藏。

这个方案也并不复杂,却有两个好处:

1.不用在每个页面写 ajax 请求;

2.浏览器会缓存 css ,减少请求;

同时因为浏览器缓存 所以要注意一个问题:css 被缓存后,如果权限有更新或者切换账户时 css 不能更新!

这个问题也很简单,只需要每次登录的时候生成一个随机 QueryString 加到 css 链接后面就行了:

<head>

<link rel="stylesheet" type="text/css" href="/getCssForAuth.php?w56yi9jtg45" >
</head>

 

还有一个小点要注意一下,就是服务端输出 css 需要加 content-type,PHP 中使用 header即可:

<?

header('Content-type: text/css');

?>

 

© 著作权归作者所有

共有 人打赏支持
dubox
粉丝 2
博文 75
码字总数 21316
作品 0
西安
程序员
关于纯HTML前台和JFinal后台的问题

类似后台管理系统的应用(登录,首页,各种功能模块,各种统计,各种增删改查)。 要求纯HTML前台页面,后台使用JFinal提供API,前后台交互使用JQuery的ajax方法(统一ajax错误处理),交互的...

负心杏 ⋅ 2015/09/23 ⋅ 3

web工作流管理系统开发之十二 同一张表单在流程多节点中流转的权限控件

以前写过一篇 表单权限与流程的权限控制;文章,没有具体的去实现,实践证明,同一张表单在多流程节点中流转,是工作流和电子表单必须要处理的问题。 工作流系统和电子表单相结合,达到同一张...

长平狐 ⋅ 2012/10/11 ⋅ 0

yii2 rbac权限控制之菜单menu详细教程

作者:白狼 出处:http://www.manks.top/yii2rbacmenu.html本文版权归作者,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。 ...

白狼栈 ⋅ 2016/04/28 ⋅ 0

ThinkPHP类似于RBAC的权限控制

admin最高权限的用户只有一个,他将不参与判断,直接显示全部 效果,商家管理权限,只单单显示商家管理导航,其他隐藏或移除元素 1、首先我们程序做完之后,进我们的model和controller里面的...

思梦教育 ⋅ 01/22 ⋅ 0

Java SSM 商户管理系统 客户管理 库存管理 销售报表 项目源码

需求分析: 有个厂家,下面有很多代理商(商户或门头等),之前商户进货、库存、销售、客户资料等记录在excel表格中 或者无记录,管理比较混乱,盈利情况不明。不能有效了解店铺经营情况和客户...

xoglsd23 ⋅ 2017/05/06 ⋅ 0

Java商户管理系统 客户管理 库存管理 销售报表 SSM项目源码

需求分析: 有个厂家,下面有很多代理商(商户或门头等),之前商户进货、库存、销售、客户资料等记录在excel表格中 或者无记录,管理比较混乱,盈利情况不明。不能有效了解店铺经营情况和客户...

ITjavaxue ⋅ 2017/04/15 ⋅ 0

Java商户管理系统 客户管理 库存管理 销售报表 SSM项目源码

需求分析: 有个厂家,下面有很多代理商(商户或门头等),之前商户进货、库存、销售、客户资料等记录在excel表格中 或者无记录,管理比较混乱,盈利情况不明。不能有效了解店铺经营情况和客户...

niuyangyang87 ⋅ 2017/04/14 ⋅ 0

Java商户管理系统 客户管理 库存管理 销售报表 SSM项目源码

需求分析: 有个厂家,下面有很多代理商(商户或门头等),之前商户进货、库存、销售、客户资料等记录在excel表格中 或者无记录,管理比较混乱,盈利情况不明。不能有效了解店铺经营情况和客户...

1928691909 ⋅ 2017/06/12 ⋅ 0

java 库存 进销存 商户 多用户管理系统 SSM springmvc 项目源码

需求分析: 有个厂家,下面有很多代理商(商户或门头等),之前商户进货、库存、销售、客户资料等记录在excel表格中 或者无记录,管理比较混乱,盈利情况不明。不能有效了解店铺经营情况和客户...

m17095936074 ⋅ 2017/06/11 ⋅ 0

Java SSM 商户管理系统 客户管理 库存管理 销售报表 项目源码

需求分析: 有个厂家,下面有很多代理商(商户或门头等),之前商户进货、库存、销售、客户资料等记录在excel表格中 或者无记录,管理比较混乱,盈利情况不明。不能有效了解店铺经营情况和客户...

m17175253349 ⋅ 2017/06/10 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

【elasticsearch】 随笔 Date datatype

一。时间类型的本质 首先json是没有时间类型的,对于es来说,时间类型的标示可以是下面三种情况 1.一个时间格式的字符串,如:"2014-11-27T08:05:32Z","2015-01-01" or "2015/01/01 12:10:3...

xiaomin0322 ⋅ 13分钟前 ⋅ 0

阿里云资源编排ROS使用教程

阿里云资源编排ROS详细内容: 阿里云资源编排ROS使用教程 资源编排(Resource Orchestration)是一种简单易用的云计算资源管理和自动化运维服务。用户通过模板描述多个云计算资源的依赖关系、...

mcy0425 ⋅ 15分钟前 ⋅ 0

适配器设计模式

1、适配器模式 把一个类的接口变换成客户端所期待的另一种接口 使原本因接口不匹配而无法在一起工作的两个类能够在一起工作 分为类的适配器模式和对象的适配器模式 2、类适配器模式 类的适配...

职业搬砖20年 ⋅ 20分钟前 ⋅ 0

npm操作报错 _stream_writable.js:61

有一天 不知道什么原因(估计和node的版本有关),无论你做什么npm的操作 都会报错/usr/local/lib/node_modules/npm/node_modules/readable-stream/lib/_stream_writable.js:61 这时候只要执...

lilugirl ⋅ 23分钟前 ⋅ 0

Eclipse安装插件的几种方式

Eclipse魅力之一就是支持可扩展的插件,来丰富自身的功能,这种方式也是建立在开源思想之上的。具体使用什么方式去安装插件,要看我们拿到的是什么。 1. 拿到的是一串URL,如http://subclips...

GordonNemo ⋅ 26分钟前 ⋅ 0

div图片叠加

css实现代码如下: <div style="position: relative;"><!--这个层为外面的父层,需设置相对位置样式--> <div style="position: absolute;"><!--子层,需设置绝对位置样式--> <i......

niithub ⋅ 27分钟前 ⋅ 0

作用域slot

如果父组件需要使用子组件中的内容怎么办,比如父组件需要控制子组件的显示 <div id="root"><child><template slot-scope="props"><h1>{{props.item}} <div>编辑</div></h1><......

金于虎 ⋅ 30分钟前 ⋅ 1

HongHu commonservice-eureka 项目构建过程

上一篇我们回顾了关于 spring cloud eureka的相关基础知识,现在我们针对于HongHu cloud的eureka项目做以下构建,整个构建的过程很简单,我会将每一步都构建过程记录下来,希望可以帮助到大家...

明理萝 ⋅ 33分钟前 ⋅ 1

xml和对象的相互转化

@Data//setter和getter方法,toString和equals,hashcode方法@EqualsAndHashCode//代表重写equals和hashcode方法@XmlAccessorType(XmlAccessType.FIELD)public class Classroom {@X......

拐美人 ⋅ 33分钟前 ⋅ 0

tableView cell的高度 分组头部尾部的高度 自适应

@property (nonatomic) CGFloat rowHeight; // default is UITableViewAutomaticDimension@property (nonatomic) CGFloat sectionHeaderHeight; // default is UITableViewA......

娜一片蓝色星海 ⋅ 34分钟前 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部