这是一个在操作系统里比较常见的功能,但在web里实现,有哪些需要注意的呢?

  1、如何真正的实现锁屏?

  2、如何避免通过技术手段绕过锁屏?

  我个人总结出2点需要特别注意的地方,下面就分别进行分析。

  第一点,“如何真正的实现锁屏”,浏览器有个特性,就是可以多开窗口(或tab标签页),这就意味着单纯的靠js和css进行html对象的操作,实现隐藏是不够的,因为如果用户依旧处于登入状态,其他人只需重新开个页面,或者刷新一下,就又变回未锁屏状态了。所以,第一点的解决办法就是,前端通过js和css进行html对象操作的同时,后端需要将当前用户登出,这样用户就处于登出状态了,并且通过锁屏界面解锁登录后,是可以继续之前的操作的。

  第二点,“如何避免通过技术手段绕过锁屏”,如果上一点已经解决,那他人已经无法通过刷新或重新打开窗口绕过锁屏,但还有一种方法,就是通过浏览器自带的一些调试工具,比如chrome的“开发者工具”,firefox的“firebug”,这些可以动态的修改对象元素,做前端开发的一定不陌生。要避免这一问题,解决办法就是在锁屏的时候,创建一个函数实时进行指定对象的检测,检测的指标有,对象是否存在,是否处于隐藏状态,位置是否有变动等。

  针对第二点,我做了一个简单的demo,大家可以玩玩,当点击“开启锁屏”后,在不点击“退出锁屏”按钮,尝试使用浏览器的开发者工具,让“开启锁屏”界面重现出来。

web桌面程序之锁屏功能分析的更多相关文章

  1. web桌面程序之图标拖动排序的分析

    在web桌面程序里,图标拖动并重新排序是个比较常见的功能.这个功能我之前反复修改了好几遍,现在终于整理出了比较理想的解决思路,决定拿出来分享下. 这一功能主要有哪些难点呢?我总结了一下一共有2处难点: ...

  2. WP8开发札记(二)让程序支持锁屏运行

    我们都知道WP8是采用墓碑机制来管理应用程序的. 当我们把手机锁屏了,默认情况下,App就触发了deactivated 事件,准备被墓碑化了. 但是,有些时间我们不想让程序就此终止运行.(比如说,你开 ...

  3. UWP 设置桌面壁纸、锁屏图片

    private static Uri imgUri = new Uri("ms-appx:///pic1.jpg"); private async void btnSetWallp ...

  4. Electron与WEB桌面应用程序开发及其它

    这几天在构思项目,研究了一下Electron,记录下来. 说起WEB桌面程序,当前最火的就是Electron了. Electron的架构用一句话总结,就是一个main.js进程加上一个或数个chrom ...

  5. 重新想象 Windows 8 Store Apps (59) - 锁屏

    [源码下载] 重新想象 Windows 8 Store Apps (59) - 锁屏 作者:webabcd 介绍重新想象 Windows 8 Store Apps 之 锁屏 登录锁屏,获取当前程序的锁 ...

  6. fcode-页面九宫格自动锁屏jquery插件

    fcode.js 自动锁屏插件 fcode.js是什么? fcode.js是一款web页面九宫格自动锁屏js插件,依赖于jquery, 会在设置的范围里,判断用户有无操作,然后执行锁屏的功能. 就一个 ...

  7. Android-服务中监听电源键和Home键的广播、在锁屏下仍然工作的方法

    Android-服务中监听电源键和Home键的广播  http://blog.csdn.net/u014657752/article/details/49512485 Android开发之如何监听让服 ...

  8. Windows 聚焦(锁屏背景)不更新的解决方法

    在 Windows Store 搜索 Dynamic theme 安装后可对桌面背景.锁屏界面等进行设置,非常好用!

  9. 突破短板,传统桌面程序 使用webapi 扩展迎合web和移动端融合的需求

    传统桌面程序不能完全被web和移动端替代,但是需要改造.这里要说的是巧用webapi把以前用dll和com组件,ocx等方式做接口,做分布式开发的方式,改成restful 风格api的方式实现跨平台, ...

随机推荐

  1. 快速入门系列--CLR--02多线程

    最近,由于基础框架的整体升级,因此需要更新所有相关项目的DLL文件.这个过程存在不小的风险,因此也对发布后的生产服务器进行了密切的监控,结果还是出现了个别应用出现异常的情况,很快的占用了大量的服务器内 ...

  2. Introduction of Open CASCADE Foundation Classes

    Open CASCADE Foundation Classes Open CASCADE基础类 eryar@163.com 一.简介 1. 基础类概述 Foundation Classes Overv ...

  3. 栈-java代码

    import java.util.Arrays; public class StackDemo { private int maxSize; private long[] stackArray; pr ...

  4. javascript运算符——位运算符

    × 目录 [1]二进制 [2]非 [3]与[4]或[5]异或[6]左移[7]右移[8]>>>[9]应用 前面的话 位运算符是非常底层的运算,由于其很不直观,所以并不常用.但是,其速度 ...

  5. Android线程之主线程向子线程发送消息

    和大家一起探讨Android线程已经有些日子了,谈的最多的就是如何把子线程中的数据发送给主线程进行处理,进行UI界面的更新,为什么要这样,请查阅之前的随笔.本篇我们就来讨论一下关于主线程向子线程如何发 ...

  6. PhotoShop常用快捷键

    Photoshop常用快捷键: 图01 图02 图03 图04 图05 快捷键 PS快捷键是Photoshop为了提高绘图速度定义的快捷方式,它用一个或几个简单的字母来代替常用的命令. 多种工具共用一 ...

  7. 使用 CSS3 动画实现的 3D 图片过渡特效

    这是一个基于 CSS3 动画实现的图片过渡效果,共有 Flip.Rotation.Multi-flip.Cube.Unfold 等6种效果,它们将证明 CSS3 Transform 和 Transit ...

  8. Office PPT保持提示无法保存Gill Sans 等非TrueType字体

    升级office到最新版了 我有一天在做PPT,保存文件后提示保存:无法保存Gill Sans 等非TrueType字体 我知道PPT可以替换字体.于是使用替换字体功能,但是提示非TrueType不能 ...

  9. Windows Azure HandBook (6) Azure带宽与Azure Blob云存储

    <Windows Azure Platform 系列文章目录> 在笔者这几年Azure售前工作中,经常会遇到客户提同样的问题:Azure 虚拟机的带宽是多少?Azure提供独享带宽吗?这个 ...

  10. maven基础知识

    1.maven基础知识 1.1maven坐标 maven坐标通常用冒号作为分割符来书写,像这样的格式:groupId:artifactId:packaging:version.项目包含了junit3. ...