首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >项目管理应用程序如何使用JavaScript和PHP处理任务定时器

项目管理应用程序如何使用JavaScript和PHP处理任务定时器
EN

Stack Overflow用户
提问于 2015-06-26 22:11:07
回答 1查看 261关注 0票数 0

最近,我开始看到一些项目管理应用程序在任务上提供了一个计时器函数/按钮。

用户可以单击以启动计时器,它将记录经过的时间并保存到该任务记录的后端。

我从未尝试将此功能添加到我目前正在构建的项目管理应用中的主要原因是,一旦用户浏览到应用程序或web中的另一个页面,JavaScript计时器就会变得毫无用处!

我看到一些应用程序解决这个问题的方法之一是使用AJAX加载应用程序中的每个页面,这样它们就可以在屏幕底部设置一个计时器栏,即使在PM应用程序中导航时,它也会保持在屏幕上。

这似乎是一个不错的方法,但在我的情况下,我不能这样做。我的项目管理应用程序是一个SugarCRM模块,所以我不能改变主应用程序流的工作方式。

所以我的问题是,在PM应用程序中实现任务计时器的可靠方法是什么?

我假设它可能必须与PHP一起工作,才能在前端JavaScript定时器和后端之间保持某种程度的同步。

例如,假设您在一个任务上运行了几分钟的计时器,然后从应用程序中导航。1小时后加载PM应用程序,如果JavaScript计时器使用后端启动计时器时间并计算经过的时间,然后让JavaScript计时器从如果您在应用程序中停留了整整一个小时的位置开始,那就太好了!

澄清:

  • 加载PM应用程序并启动计时器。它可以计算到00:03:00
  • 你可以远离这个应用程序,甚至关闭它。
  • 1小时后,您返回并加载应用程序。
  • 然后,THe JavaScript Timer将开始显示01:03:00并根据该值进行计数。

这听起来可行吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-06-26 22:19:21

是的,这是可行的,不要依赖客户。您需要将启动时间保存到db,并同时启动客户端计时器。只需在js中添加一个运行时签入,以查看启动时间,并进行计算。这样,如果有人刷新浏览器、失去网络连接或关闭计算机,都无关紧要。

客户端只做服务器要做的事情。

简略情景

第一步:客户端发布

  1. 将日期对象时间戳张贴到服务器-或-
  2. 设置要发布的端点,这样客户端甚至不必担心创建任何日期对象

第二步:客户端计时器

在单击事件上,在JS中本地启动计时器

第三步:添加运行时检查

如果用户刷新他们的浏览器或执行任何需要重新呈现页面的操作,您有两个选项。1.从服务器获取现有计时器的启动时间,并在客户机2中进行计算。

优点:我肯定不会为此使用本地存储,但您可以使用本地存储作为备份。

示例: JS运行>无网络检测>引用本地存储

为了以防万一,这里有一些伪代码,因为有很多方法可以做到这一点。假设getActiveTimers执行了一个GET到一个端点,该端点返回带有所有活动定时器的JSON,并表示启动时间,startTimer在客户机中进行计算。如前所述,您可以在服务器端完成服务器端的计算,以便客户端能够启动并提供所提供的时间。

代码语言:javascript
运行
复制
var init = function() {
  getActiveTimers(function(rsp) {
    if (rsp.timers) {
      startTimer(rsp.timers.startTime);
    }
  });

  $('.js-timer').on('click', function() {
    // do time stuff 
  });
};

init();

这里最大的外卖是,是的,,你可以这样做,它一直在做。我还建议您研究一下休息。祝你好运!

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31082889

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档