使jQuery代码静态用于不同的页面

时间:2010-10-12 07:11:40

标签: javascript jquery web-applications javascript-events

我正在尝试使用jQuery Countown plugin让我的用户现在已经花了多少时间完成某项任务。

所以我使用以下代码在30分钟后开始倒计时。

<script type="text/javascript">
$(function () {
 $('#defaultCountdown').countdown({until: '+30m'});
});
</script>

问题是用户将导航到给定任务的不同页面,如果我只是在所有页面上包含此代码,则每次用户进入新页面时,计时器将从30分钟开始刷新当前的。我是jQuery的新手,所以我想知道是否有办法使这段代码静态,以便在给定的事件(在一个页面中)之后开始,并且当另一个页面上的事件发生时停止?

编辑:我应该提到倒计时仅用于受控环境中的可用性测试,以便应用程序只能在一台计算机上运行。

谢谢!

3 个答案:

答案 0 :(得分:2)

客户端解决方案:
不计算相对时间,而是计算绝对时间并将其存储在cookie中 每个页面都可以查找该值并启动计时器。

答案 1 :(得分:1)

除非提供某种同步机制,否则这是不可能的:

  • 每个页面将查询字符串中剩余的时间传递给另一个页面。需要修改初始化代码,以便从接收的参数开始倒计时。
  • 每个页面都会发布服务器中剩余的时间。这更难实现,因为它需要服务器中的持久层。

通常情况下,在一个标签/窗口中倒计时,然后用新标签打开其他页面。您可以要求用户不要关闭原始窗口。

答案 2 :(得分:1)

我看到三种解决方案:
1)从服务器端给出开始时间 2)使用AJAX加载其他页面,因此页面不会刷新
3)使用框架(最差的选择)。