我想创建一个在线测试系统,所以我需要一个计时器。当用户开始测试时,计时器将开始倒计时。但是当用户转到下一个问题刷新页面时,计时器仍将运行。我怎么能这样做呢?
答案 0 :(得分:2)
您可以使用PrimeFaces Poll选项。
计数器将始终保存在服务器上。
答案 1 :(得分:1)
您也可以使用PrimeFaces Extensions,他们的API中有timer。
示例:将测试开始放入@SessionScoped
bean,然后计算将用作<pe:timer>
元素输入的剩余秒数:
@SessionScoped
public class UserData {
private Date testStart;
/* getters and setters for testStart */
public int secondsRemaining() {
//calculate seconds remaining until end of the test from this.testStart
return secondsRemaining;
}
}
然后你的test.xhtml将包含元素
Time remaining: <pe:timer format="HH:mm:ss"
timeout="#{userData.secondsRemaining()}"/>