【发布时间】:2018-09-11 18:21:29
【问题描述】:
我实现了一个ResetTime 函数,一旦调用了模态框,我就需要停止该函数。 ResetTime 函数用于会话超时。每次有用户交互时,时间都会重置。
ResetTime函数
function ResetTime() {
timer = SetLastResetTimeStamp((new Date()).getTime());
}
function SetLastResetTimeStamp(timeStamp) {
if (_localStorage) {
_localStorage[_localStorageKey] = timeStamp;
} else {
_lastResetTimeStamp = timeStamp;
}
}
用户交互检查:
AttachEvent(document, 'click', ResetTime);
AttachEvent(document, 'mousemove', ResetTime);
AttachEvent(document, 'keypress', ResetTime);
AttachEvent(window, 'load', ResetTime);
有没有办法在另一个函数中停止ResetTime 函数?
【问题讨论】:
-
if(modal is open) return; -
就像在现实生活中一样,你设置了一个条件。在现实生活中:
if driving -> don't hold phone所以在代码中设置条件也是合乎逻辑的。您需要使用if语句,然后设置首先应调用函数的条件,或者如果无法在那里设置条件,那么您应该在函数本身中设置它,就像上面写的@Phiter。 -
也许解决方案是在模式打开时记录时间,并以某种方式更改业务逻辑。否则,一个解决方案将声明一个全局变量(反而是最糟糕的,因为会污染全局命名空间),然后是 if(modalIsOpen){myGlobVar=true}。在 SetLastResetTimeStamp 检查 myGlobVar,如果 false 做本地存储的东西,否则返回。通过这种方式,您不需要分离-重新附加事件。只是一个想法......
标签: javascript