更新网页上的计时器,并保持经过的时间--如何处理

Updating timer on web page and also persisting time elapsed -- How to approach?

本文关键字:何处理 处理 时间 计时器 网页 更新 经过      更新时间:2023-09-26

我正在学习ASP.NET MVC,并试图习惯无状态范式。我想知道如何跟踪用户在页面上花费的时间。

我在决定Timer对象应该驻留在哪里时遇到了问题。

一方面,我可以在客户端拥有这种时间跟踪功能,在一些Java脚本模块中实现。这是有道理的,因为我希望时间在UI上实时显示和更新(就像正常的时钟滴答作响一样),但我担心如果用户切换选项卡,脚本会停止工作。另一方面,为了避免这个问题,我可以移动服务器端的计时机制,并使用AJAX调用更新UI,但我不确定这是否是正确的方法。

除了在UI上显示它之外,我还想保留这些信息。所以,有人能给我一些提示吗?在web应用程序的无状态范式下,如何处理这个问题?

这实际上取决于您希望如何实现持久化时间的逻辑。没有一种正确/最好的方法来实现在网页上显示计时器。使用JavaScript在客户端实现它,或者在服务器端实现它,然后使用Ajax调用在网页上显示计时器都可以。但这两种方法需要做更多的工作。

我更喜欢使用ASP.NET SignalR和knockout.js来实现定时机制。SignalR是一个为应用程序添加实时网络功能的库。使用SignalR,您可以让服务器代码立即将内容推送到连接的客户端。Knockout是一个javaScript MVVM框架,它提供自动UI刷新和双向数据绑定等功能。您可以在服务器上获取实时值,然后使用SignalR将时间值推送到客户端。Knockout可以获取值并自动刷新计时器值。

如果你对这种方法感兴趣,你可以在下面了解更多:

SignalR

http://www.asp.net/signalr/overview/signalr-20/getting-started-with-signalr-20/introduction-to-signalr

淘汰

http://knockoutjs.com/