django和sql现场倒计时时钟?

时间:2011-07-10 04:52:28

标签: javascript python django time countdown

如果我制作一个像ebay一样的倒计时时钟,我该怎么做django和sql呢?我假设每秒都在django或sql中运行一个函数来检查时间是非常低效的。

这甚至是一种看似合理的策略吗?

或者这是他们这样做的方式: 当页面加载时,它从服务器获取结束日期时间并在用户计算机上针对它运行javascript倒计时时钟? 如果是这样,你如何用javascript做倒计时时钟?如果时间限制结束而没有用户页面加载,我将如何删除/移动数据?或者,用户是否必须加载页面以检查创建有效倒计时时钟的时间限制?

2 个答案:

答案 0 :(得分:2)

我认为这个问题与SQL没有任何关系 - 除了您可以从SQL检索到期时间。你真正关心的是如何在浏览器中实时显示超时,对吧?

显然最简单的方法就是向页面发送一个“秒剩余”计数器,无论是初始加载,还是作为AJAX请求的一部分,然后使用Javascript显示计时器,并每秒更新一次当前值。我会选择使用“秒剩余”计数器而不是“结束日期时间”,因为您不能相信浏览器的时钟设置正确 - 但您可能相信它可以正确地倒数秒。

如果您不相信Javascript或客户端的时钟准确,您可以定期通过AJAX将当前“剩余秒数”值重新发送到浏览器。我不会每一秒都这样做,也许最多每15或60秒。

对于时钟到期时删除/移动数据,您需要在Javascript中完成所有这些操作。

我不是百分百肯定我回答了你所有的问题,但你的问题似乎有点分散。如果您需要更多关于操作理论的说明,请询问。

答案 1 :(得分:0)

我前一段时间也遇到过同样的问题。

首先,你的问题既不是django也不是sql。这是一个通用的概念,由于服务器的开销,它实现起来并不容易。

我想到的一个解决方案是在数据库中保留流程的开始时间。 当有人要求您查看剩余时间时,从数据库中读取它,减去当前时间和服务器的时间,并在浏览器中使用该值初始化您的javascript函数,并在15秒内倒计时。之后,在不等待用户请求的情况下,使用AJAX执行相同的操作。

但是,根据您的应用程序,还有其他实现。如果您详细解释您的应用程序,可能还有其他解决方案。

例如,如果您使用有限时间实施调查问卷,那么对于每个答案提交,您应该传递计算的javascript值。

相关问题