-3

可能重复:
如何在页面加载,页面重新加载时调用一次javascript函数,不要再次调用它

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

4

2 回答 2

2

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

假设您的页面被调用timer.jsp,并且在那里您有一个开始倒计时的脚本。因此,我将执行以下操作...

  1. 当您timer.jsp第一次生成页面时,创建一个session名为的参数TimerFinish,其中包含计时器应该完成的日期时间。例如,如果日期时间是01/01/2012 10:00并且您的计时器是25分钟,您将存储该值01/01/2012 10:25
  2. 每当用户显示页面时(包括第一个页面加载和每次页面刷新),这个TimerFinish值都已经存在。您可以使用它来计算计时器完成之前的时间。将此值计算为TimerFinish - currentDateTime
  3. 在您的 javascript 中设置计时器以从您在步骤 2 中计算的值开始倒计时。

因此,无论用户做什么(刷新页面等),计时器将始终从剩余时间开始,而不是简单地再次重置为 25 分钟。当timer.jsp用户重新加载时,您只需从对象中读取现有TimerFinishsession并使用它来设置剩余时间的正确值。

于 2012-06-04T13:12:18.650 回答
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')">

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

于 2012-06-04T11:33:31.737 回答