繁体   English   中英

我想在用户进入网站3分钟后弹出一个窗口

[英]I want to popup a window 3 minutes after the user enters the site

如标题所述,我想在用户进入网站3分钟后弹出一个窗口。 问题是因为用户不会在单个页面上停留3分钟。 我不能使用JavaScript。 因为他可能会导航到我网站中的其他页面。 我尝试使用setTimeout,但是如果我导航到另一个页面,代码将再次刷新,它将无法正常工作。

您可以在服务器端使用会话。 将会话开始时间放入会话变量中。 每次请求新页面时,您都可以返回会话的开始时间。 然后,将此DateTime和当前服务器DateTime馈入全局javascript函数,该函数将负责进一步的计算以及显示弹出窗口。

请记住,我在这里也从服务器获取当前的DateTime,因为在大多数情况下,JavaScript检测到的DateTime与服务器的DateTime不同(由于托管位置等原因)。 使用此解决方案,唯一的缺点是您将无法跟踪客户端服务器往返造成的滞后。

听起来是sessionStorage的好用法:

  1. 在初始页面加载时,检查是否存在sessionStorage项目
  2. 如果该项目不存在,请使用当前日期/时间填充
  3. 如果该项目确实存在,请使用setInterval轮询并比较时间,例如每100毫秒一次。 如果3分钟过去了,请弹出消息。

sessionStorage值将在页面和页面重新加载之间保持不变。

例:

// Save date to sessionStorage
sessionStorage.setItem('your-key', new Date());

// Get saved date from sessionStorage
var date = sessionStorage.getItem('your-key');

如果使用此方法,您可能希望先回退到本地存储,然后再返回cookie。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM