是否有人实施了一项功能,如果用户在一段时间内没有触摸屏幕,您会采取某种行动吗?我正试图找出最好的方法.
UIApplication中有一些与此有关的方法:
[UIApplication sharedApplication].idleTimerDisabled;
Run Code Online (Sandbox Code Playgroud)
如果你反而有这样的事情会很好:
NSTimeInterval timeElapsed = [UIApplication sharedApplication].idleTimeElapsed;
Run Code Online (Sandbox Code Playgroud)
然后我可以设置一个计时器并定期检查该值,并在超过阈值时采取一些措施.
希望这能解释我在寻找什么.有没有人已经解决过这个问题,或者对你将如何做到这一点有任何想法?谢谢.
是否有使用Go获取Windows系统空闲时间的示例或方法?
我一直在看Golang网站上的文档,但我想我错过了如何访问(和使用)API来获取系统信息,包括空闲时间.
我正在开发一款主要使用加速计输入的iOS游戏.以前的程序员在启动时设置idleTimerDisabled = YES并保持这种状态.我最近进行了一项更改,使得空闲计时器仅在游戏过程中被禁用,并在等级结束时重新启用.
问题是,如果关卡的播放时间比用户的idleTimer设置长,那么当我设置idleTimerDisabled = NO时,屏幕将变灰.有没有办法在重新启用时重置计时器,以便在idleTimer使屏幕变暗之前发生全时间增量?
一些银行和金融网站在认为您空闲时会自动注销。有没有办法让我在页面中注入一个脚本来假装我不闲着?
我试过这个:setInterval(() => document.body.click(), 1000 * 60 * 5) // Click every 5 minutes
但它不起作用,我仍然注销了:
再次强调,这并非出于任何恶意目的 - 我通过在一个显示器中保持股票头寸屏幕打开,同时在另一台显示器上工作来监控我在 Fidelity 上的股票头寸,但 Fidelity 不断显示闲置警告并每 30 次将我注销分钟。
请注意,在这种特殊情况下,该站点还监听click
、touchstart
和事件:keydown
scroll
document.visibilityState
一些注意事项:
我不能简单地每 x 分钟刷新一次页面,因为页面有一些 UI 状态(例如我在表中位置的排序顺序)会丢失
我尝试了一个愚蠢的pyautogui
脚本,可以移动鼠标并单击页面,并且有效!那么为什么我不能在 chrome 中执行此操作呢?
我正在寻找一种方法来通过SSH远程确定本地输入(鼠标/键盘)空闲时间,而无需root访问权限或访问当前登录的用户Xauthority.
我知道以下解决方案,如果您有权访问X服务器: 在linux中检测键盘,鼠标活动
但是没有必要连接到X服务器是否可能?还有另外一种方法吗?例如,通过某些进程的CPU或内存使用间接?欢迎任何想法.
我遇到的问题是一个搜索功能,doSearch()
在用户在我的$("input#q)
字段中停止键入至少100毫秒之后应该调用我的方法.
我试图通过使用这个答案的逻辑来实现这一目标,但我仍然坚持我应该设置/取消设置的setInterval()
增量idleTime
.
var idleTime = 0;
$("input#q").keyup(function() {
idleTime = 0;
idleInterval = setInterval(function() {
idleTimeIncrement();
}, 25);
});
function idleTimeIncrement() {
idleTime += 25;
if (idleTime >= 100) {
doSearch($("input#q").val());
}
}
Run Code Online (Sandbox Code Playgroud)
我在Firebug Console中遇到的错误说:
递归太多了.
所以我想我的代码中有一个无限循环... ;-)
我正在尝试通过primefaces 组件idlemonitor处理会话超时。
我这样做是因为我需要让用户知道由于不活动,会话已过期。我需要通过对话框显示此消息,在他关闭对话框后,他应该被重定向到登录页面。他不应该能够像什么都没发生一样单击“后退”并浏览应用程序;如果他点击“后退”,他应该被重定向到 sessionexpired.xhtml 页面。
我将idleMonitor放在logintemplate.xhtml中,因此只有在您登录时它才起作用,无论在哪个页面上,因为登录后我的所有页面都源自loggedintemplate.xhtml。
我的logintemplate.xhtml中的代码如下所示:
<p:idleMonitor timeout="6000" onidle="idleDialog.show()" />
<p:dialog header="Timeout" resizable="false" closable="false"
widgetVar="idleDialog" modal="true">
<p:panel styleClass="noborderpanel">
<p:panelGrid columns="1" styleClass="adressegrid">
<p:outputLabel value="Session has expired due to inactivity" />
<p:commandButton action="#{loginController.timeout()}"
value="Ok" />
</p:panelGrid>
</p:panel>
</p:dialog>
Run Code Online (Sandbox Code Playgroud)
因此,这段代码的功能主要是检查用户是否在 6 秒内处于非活动状态,如果他处于非活动状态,则会弹出一个无法关闭的对话框,并告诉他会话已过期。
方法loginController.timeout()应该注销用户,使会话无效等。
我的问题是我不知道如何使会话无效,如何注销用户等。如果我使用FacesContext.getCurrentInstance().getExternalContext()
.invalidateSession();
它确实会使会话无效,但我需要更多。例如,如果用户处于非活动状态超过 30 分钟(默认 JavaEE 超时时间),我会收到 nullPointerException。
我想“手动”处理超时,有没有办法禁用默认的 JavaEE 超时?
手动处理超时的最佳方法是什么,而不是这样:
<session-config>
<session-timeout>20</session-timeout>
</session-config>
<error-page>
<exception-type>javax.faces.application.ViewExpiredException</exception-type>
<location>/expired.xhtml</location>
</error-page>
Run Code Online (Sandbox Code Playgroud) 我们目前正在成功检测页面中目标 DOM 元素的突变。我们现在正在考虑将这些目标节点突变的某些属性聚合在一个“列表”中,以通过 AJAX 调用发送以在服务器上进行处理。来自服务器的回调将允许我们批量修改这些目标元素的属性。
然而,问题是何时进行第一个 Ajax 调用。显然我们知道突变何时开始(因此添加到列表中)。但是,我们永远不知道它们何时结束(MutationObserver 空闲)然后进行 AJAX 调用。当然,我们可以编写一个函数来检查列表的大小以及经过的一段时间,以便在函数唤醒时进行包含聚合列表内容的 Ajax 调用。
是这样还是有更好的处理方法?
想法赞赏!
我搜索并找到了一些使用 jquery 设置空闲超时的示例。
5 -使用 PHP 和 jQuery 进行 Comet 长轮询
...以及其他几个类似的例子
在这些示例之间,数字 1 更适合我的需要,因为我需要在 X 分钟(logout.php 或任何 url)后使用任何确认警报自动注销用户。但是这种方法不适合服务器。问题是:此 jquery 代码将 ping 发送到任何 url:keepAlive.php 中的循环/池请求 OK 文本。看萤火虫屏幕:
如何解决这个问题?因此,其他示例仅打印空闲/无空闲,而不能与警报确认和自动注销( logout.php 或任何 url )一起使用,现在使用 jquery/Php 选择空闲超时真的更好吗?
谢谢
idle-timer ×10
ios ×2
jquery ×2
c# ×1
dom ×1
go ×1
input ×1
iphone ×1
javascript ×1
jsf ×1
linux ×1
objective-c ×1
php ×1
primefaces ×1
user-input ×1
winapi ×1
wpf ×1