如果没有操作,15秒后重定向页面

Redirect page after 15 seconds if no action

本文关键字:重定向 15秒 操作 如果没有      更新时间:2023-09-26

我正在为一家咖啡店开发订阅应用程序。现在,用户可以用他们的电话号码登录。用户登录后,它将引导用户进入一个页面,该页面将向订阅者显示一些统计数据,如他们花了多少钱,访问次数等。我的问题是。如果没有按下键或没有在该页面上进行点击,是否有一种方法可以使页面重定向回主页?只有当页面上没有来自用户的操作时。我觉得这应该是Javascript的事,但我不确定?如果你需要更多的信息,请告诉我。谢谢!

sign in method:

  def search
    @subscriber = Subscriber.new
  end
  def visit
    @subscriber = Subscriber.find_by_phone_number(params[:phone_number])
    if @subscriber
      @subscriber.visit ||= 0
      @subscriber.visit += 1
      @subscriber.save
      render "visit"
    end
  end

所以首先,你必须更具体地说明你所说的"无行动"是什么意思。下面是一些例子:

  • 鼠标没有移动
  • 没有键被按下
  • 没有点击

它可以是上述任何一种的组合,也可以是许多其他东西的组合。

假设"无动作"意味着"没有点击任何东西,没有按任何键,也没有移动鼠标"。

在这种情况下,可以像这样启动超时:

var redirectTimeoutId = window.setTimeout(redirectToHomepage, 15000)

在15秒(15000毫秒)后调用函数redirectToHomepage

现在你想要这个函数redirectToHomepage:

function redirectToHomepage() {
  window.location.href = '/home'; // or whatever your homepage would be
}

好的,但是如果用户单击,如何避免调用该函数呢?好吧,您只是注册了一个事件处理程序,但在捕获阶段,所以页面上的任何内容都不太可能取消您:

window.addEventListener('click keypress mousemove', function() { 
  window.clearTimeout(redirectTimeoutId)
}, true)