如何在JSP页面中编写javascript倒计时器,以便重新加载不会重新启动计时器?

时间:2012-06-04 11:25:40

标签: java javascript jsp timer

  

可能重复:
  How to call a javascript function once on page load, page reloads, don't call it again

我想在jsp页面中调用javascript,触发倒数计时器。但是,如果用户刷新页面,我不希望重置计时器 - 它应该从剩余时间开始继续。我怎样才能做到这一点?

2 个答案:

答案 0 :(得分:2)

在您的评论中,您说您希望每次加载页面时都不会重新启动计时器。这就是我要做的......

假设您的页面被称为timer.jsp,并且在那里您有一个开始倒计时的脚本。因此,我会做以下事情......

  1. 当您第一次生成timer.jsp页面时,请创建一个名为session的{​​{1}}参数,其中包含计时器完成的日期时间。例如,如果日期时间为TimerFinish而您的计时器为01/01/2012 10:00分钟,则会存储值25
  2. 每当用户显示页面(包括第一页加载和每次页面刷新)时,此01/01/2012 10:25值都将存在。您可以使用它来计算计时器应该完成的时间。将此值计算为TimerFinish
  3. 在javascript中设置计时器,从您在步骤2中计算的值开始倒计时。
  4. 因此,无论用户做什么(刷新页面等),计时器将始终从剩余时间开始,而不是简单地再次重置为25分钟。当用户重新加载TimerFinish - currentDateTime时,您只需读取timer.jsp对象中的现有TimerFinish值,然后使用该值设置剩余时间的正确值。

答案 1 :(得分:0)

JSP只是一种创建HTML的动态方式。那么,你的问题是“如何在页面加载时调用javascript?”

答案是。

浏览器解析页面时会执行每个脚本。试试这个:

<html>
  <head>
    <script>alert("from head");<script>
  </head>

  <body>
    <script>alert("from body");<script>
  </body>
</html>

您还可以在页面加载完成后运行脚本。 很多元素都有onload个事件。例如body元素。所以,你可以说:

<body onload="alert('body is loaded')">

因此,当身体加载完成时,将显示警报。