【问题标题】:how to calculate how many time a page has been refreshed by user using jquery如何计算用户使用jquery刷新页面的次数
【发布时间】:2012-05-09 09:13:04
【问题描述】:

我需要计算用户使用 jquery 刷新特定页面的次数。该页面应该有一个静态计数器,每次重新加载页面时都会增加,如果用户导航到上一页的另一个页面计数器应该重置为零,我不想使用会话,但只使用 jquery 来执行此操作。请帮助。

谢谢我提前...

【问题讨论】:

  • 恐怕做不到。如果您希望任何数据在页面加载时保持不变,则需要会话。
  • 我可以使用 php 来做到这一点,我是 jquery 的新手,所以我请你们帮助我,我很好地说过我不想使用会话剂量,这意味着我已经尝试了一些东西
  • 这是不可能的,正如威尔所说。顺便说一句,展示你尝试过的东西是个好主意——这里的人几乎总是坚持看以前的研究,所以他们知道 OP 首先做出了很好的努力:-)
  • 其实想一想,JS可能会重写地址的锚部分——每次看到一个页面,它可以将http://server/page#1更改为http://server/page#2等,然后可以在里面读取JS - 但一个用例可能有用,以确定这是否合适。
  • 是的@halfer 我只是问了这个问题,以便我知道如何使用 jquery 来解决我的问题,我知道使用 php 会话可以轻松快速地解决这个问题

标签: jquery refresh reload page-refresh


【解决方案1】:

有一些黑客可以做到这一点。我会先问你真正想解决什么用户问题,因为这个解决方案有点难看。

在伪代码中,你会这样做:

  1. 当您的页面加载时,为 reloadCnt 获取一个 cookie,并获取一个带有您的 lastActive 时间戳的 cookie。
  2. 如果时间戳比 X 分钟前长,则从 1 开始 reloadCnt(该页面在此页面加载之前不仅处于活动状态)。
  3. 如果 reloadCnt > 1,则将新计数以当前时间作为时间戳写回 cookie。
  4. 然后,在您的页面中,启动一个每 Y 分钟运行一次的计时器(其中 Y 约为 X 的一半)。在该计时器中,不断更新上次重新加载的 cookie 时间,但不更新计数。此时间戳会告诉您下次重新加载时,您是刚刚有一个活动页面,还是浏览器在一段时间内没有加载该页面。

一般的想法是在 cookie 中保留一个 reloadCnt 并且每次都递增。这部分很简单。

您还在 cookie 中保留时间戳。时间戳本质上包含页面上次在此浏览器中运行的时间(因为页面不断更新时间戳)。如果时间戳是旧的,那么用户的浏览器不只是显示这个页面,所以这一定是一段时间内的第一个。如果时间戳是新的,那么这可能只是另一个重新加载。

【讨论】:

  • 我认为我试图解决的问题比这个复杂的解决方案要小得多,我只是试图在每次用户页面重新加载时显示新的报价
  • @sohaan - 然后,你问错了问题。要解决您的问题,只需生成一个随机报价服务器端。如果您不想这样做,请在页面中放置一个引号列表并使用 javascript 显示一个随机的。
  • 不使用 Cookie 和 Session 怎么办??
  • @AmolNavsupe - 您必须将每个用户的页数存储在某处。使用常规浏览器且没有自定义插件的选项是 cookie、会话存储和在您的服务器上。选择其中之一。
猜你喜欢
  • 2016-06-22
  • 2017-02-03
  • 2011-07-21
  • 2014-01-11
  • 2011-01-02
  • 1970-01-01
  • 2021-06-10
  • 2011-12-22
相关资源
最近更新 更多