用户上一次与网页的互动

时间:2018-06-25 08:01:18

标签: javascript angularjs angular typescript timestamp

我想保存客户上次与网页交互时的时间戳-单击鼠标,点击键盘或移动鼠标。

我将使用上述时间戳计算Web令牌到期之前的剩余时间。

1 个答案:

答案 0 :(得分:1)

您可以在此插件中使用RxJS:https://plnkr.co/edit/4kPM5FX6vX2QGC0xDQQO

核心功能是_listenToEvent

function _listenToEvent(name, debounceTime) {
  rxjs.fromEvent(document, name)
  .pipe(
    rxjs.operators.debounceTime(debounceTime)
  )
  .subscribe(() => _updateTimestamp())
}

基本上,使用此功能,您甚至可以在文档对象上收听。 debounceTime参数使您可以对事件进行去抖动,以确保不要在鼠标移动时立即发送AJAX请求,而是在鼠标停止移动时发送AJAX请求,这与{​​{1}}相同。无需对keypress事件进行防抖操作,因为用户通常不会每秒点击300次。

通常,您可以轻松地将其与click服务集成在一起,该服务将在需要时发送AJAX请求。请注意,这可能不是防弹解决方案。我认为,如果您的某些代码停止了事件冒泡,RxJS可能会错过它们。