类似于JavaScript定时器的Python定时器

0 投票
2 回答
1052 浏览
提问于 2025-04-16 09:35

我想在网页上用python创建一个动态计时器,像下面这个用Javascript写的代码:

<script language="JavaScript" type="text/javascript">
var seconds = 40;   
var minutes = 01;   
function timer() {seconds--;
  if (seconds == -01) {
   seconds = 59;
   minutes = minutes - 1; }
  else {
   minutes = minutes; }
if (seconds<=9) { seconds = "0" + seconds; }
 time = (minutes<=9 ? "0" + minutes : minutes) +":"+seconds;
if (document.getElementById) { document.getElementById('timertable').innerHTML = time; }
timeout=window.setTimeout("timer();", 1000);
if (minutes == '00' && seconds == '00') { seconds = "00"; window.clearTimeout(timeout); }
}
window.onload = timer;
</script>

这个计时器需要满足一些条件: 1>计时器在页面其他内容重新加载时,不应该重新初始化它的值。 2>计时器运行的时长是根据用户在另一个HTML页面上做出的选择来决定的。 请注意,我是在谷歌应用引擎上使用Django。如果我说得不够清楚,请告诉我。谢谢,Sunil

2 个回答

1

在Python中,这个事情不太可能实现,因为Python是在服务器端运行的,而你要显示的是用户端的数据。你无法绕过JavaScript,要么你需要在JavaScript那边设置一个计时器,要么就得用到Ajax技术。

0

我还是不太明白你想要实现什么。

你可以使用 cookies 来保存计时器的状态,然后根据 cookies 中的值来初始化计时器。
关于 cookies 的教程可以参考 W3School: http://www.w3schools.com/JS/js_cookies.asp

如果你的计时器是在服务器上设置的,你可以使用 ajax 来从服务器获取初始时间,然后再用另一个 ajax 请求来更新随着 js 计时器进展的时间。你可以减少请求的频率(比如每 5 秒请求一次),这样会有一些时间损失。

撰写回答