更新网页上的计时器,并保持经过的时间--如何处理
Updating timer on web page and also persisting time elapsed -- How to approach?
我正在学习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/
- 可以't让我的if语句处理js中的html表单输入
- keyup事件处理程序更改焦点不适用于快速键入
- 如何使用jquery处理php循环通过元素
- angular.js没有'无法在PhoneGap中处理视图标记
- Webpack/Rect:遵循egghead.io教程,但出现错误:您可能需要一个合适的加载程序来处理此文件类型
- 提示使用服务器端事件处理程序激活JavaScript
- javascript:如何在antlr生成的Lexer中进行错误处理
- 如何编写一个具有公共标头的批处理
- 在同一个服务工作者中处理service-worker.js有任何影响吗
- 如何处理node.js节点mongodb中的连接和查询队列
- 通过命令行/批处理文件打开页面时,将javascript代码注入Google Chrome
- 如何处理10页以上的静态页眉/页脚
- 将事件处理程序绑定到任何可能的事件
- 通过ajax将坐标传递到php服务器端,并在处理后检索到javascript
- python到“;流“;字典处理
- 使用javascript进行实时图像处理
- 导入jQuery脚本获胜'我不处理html文件
- Javascript无法处理表单提交
- JavaScript 任务调度程序(批处理处理)
- RegEx在VBA和JavaScript中的处理方式有何不同?