这是一个在操作系统里比较常见的功能,但在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. LLBL Gen Template Studio 2.x

    Template Studio for LLBLGen Pro released Today we released Template Studio, a full-featured IDE for ...

  3. SQL Server 2012 T-SQL 新特性

    序列 Sequence SQL Server 现在将序列当成一个对象来实现,创建一个序列的例子语法如下: CREATE SEQUENCE DemoSequence START WITH 1 INCRE ...

  4. OpenCascade Modeling Algorithms Fillets and Chamfers

    Modeling Algorithms Fillets and Chamfers 造型算法——倒圆与倒角 eryar@163.com 一.倒圆Fillet Constructor 1. BRepFil ...

  5. Aspect Oriented Programming

    AOP(Aspect Oriented Programming),面向切面编程(也叫面向方面)是目前软件开发中的一个热点.利用AOP可以对业务逻辑的各个部分进行隔离,从而使得业务逻辑各部分之间的耦合度 ...

  6. javascript语句——表达式语句、块语句、空语句和声明语句

    × 目录 [1]表达式 [2]块语句 [3]空语句[4]声明 前面的话 如果表达式在javascript中是短语,那么语句(statement)就是javascript整句或命令.表达式计算出一个值, ...

  7. js选择目录

    找了好久,终于找到了! function browseFolder(path) {//打开本地目录(目录选择功能) try { var Message = "\u8bf7\u9009\u62 ...

  8. backbone库学习-Router

    backbone库的结构http://www.cnblogs.com/nuysoft/archive/2012/03/19/2404274.html 本文的例子来自http://blog.csdn.n ...

  9. Quartz Java resuming a job excecutes it many times--转

    原文地址:http://stackoverflow.com/questions/1933676/quartz-java-resuming-a-job-excecutes-it-many-times Q ...

  10. HTML5在移动端开发的12大特性

    1.离线缓存为HTML5开发移动应用提供了基础 HTML5 Web Storage API可以看做是加强版的cookie,不受数据大小限制,有更好的弹性以及架构,可以将数据写入到本机的ROM中,还可以 ...