文档章节

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

dubox
 dubox
发布于 2017/12/29 14:53
字数 388
阅读 46
收藏 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
粉丝 3
博文 96
码字总数 27792
作品 0
西安
程序员
私信 提问
加载中

评论(2)

dubox
dubox

引用来自“六有人”的评论

权限输出一段 css ,的规则是怎样呢 ?
我现在 是layui xadmin2.0 搭建的页面,
前后端分离,调取后端api拿数据的
就和 css 文件的格式一样的,不知道你说的规则是不是这个,
六有人
六有人
权限输出一段 css ,的规则是怎样呢 ?
我现在 是layui xadmin2.0 搭建的页面,
前后端分离,调取后端api拿数据的
关于纯HTML前台和JFinal后台的问题

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

负心杏
2015/09/23
1K
3
vue项目实践-前后端分离关于权限的思路

前后端分离后权限的思路 最近看到许多关于权限的思路,但好像都是使用动态加载路由的方式,现在也分享下我在项目中使用的解决方案。 前后端分离关于权限的处理每个人都不一样,根据项目选择制...

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

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

长平狐
2012/10/11
316
0
yii2 rbac权限控制之菜单menu详细教程

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

白狼栈
2016/04/28
140
0
React体系前端权限控制方案

在做商家后台管理系统时,作为前端通常会设计到大量的权限控制问题,按照细粒度归归类大致可以分类以下三类 页面权限 模块权限-页面区块(组件)是否显示 元件权限-组件内元素是否显示 以往的...

amibug
07/11
0
0

没有更多内容

加载失败,请刷新页面

加载更多

使用CURL检测Clinet侧发起的HTTP请求各阶段时间

第一、HTTP请求的过程介绍 一个HTTP请求,涉及多个阶段 1、DNS解析域名 2、请求从Clinet路由至Server,Clinet与Server建立TCP连接 3、如果使用了HTTPS,还涉及SSL连接的建立 4、server开始准...

李玉长
11分钟前
0
0
Flume+Kafka双剑合璧玩转大数据平台日志采集

概述 大数据平台每天会产生大量的日志,处理这些日志需要特定的日志系统。 一般而言,这些系统需要具有以下特征: 构建应用系统和分析系统的桥梁,并将它们之间的关联解耦; 支持近实时的在线...

java菜分享
17分钟前
1
0
Jenkins 分布式-管理节点

什么是Jenkins的分布式构建: Jenkins的分布式构建,在Jenkins的配置中叫做节点;能够让同一套代码或项目在不同的环境分发 节点配置 系统设置 - 节点管理 - 新建节点...

以谁为师
23分钟前
0
0
图片无限轮播

<!doctype html><html lang="en"><head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, max......

shawnDream
26分钟前
2
0
js 在==时,则会有一些让人难以理解的陷阱

在==时,则会有一些让人难以理解的陷阱。 (function () { var undefined; undefined == null; // true 1 == true; //true 2 == true; // false 0 == false; // true 0 == ''; // true NaN ==......

之渊
28分钟前
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部