【发布时间】:2019-10-30 11:21:11
【问题描述】:
我正在php-mysql项目中使用javascript编写倒数计时器,倒数计时器工作正常,但问题是当用户与游戏交互时,计时器重新启动。我应该对 php 会话做些什么吗?
有什么想法吗?
<div>Time left = <span id="timer"></span></div>
<script>
document.getElementById('timer').innerHTML = 01 + ":" + 00;
startTimer();
function startTimer() {
var presentTime = document.getElementById('timer').innerHTML;
var timeArray = presentTime.split(/[:]+/);
var m = timeArray[0];
var s = checkSecond((timeArray[1] - 1));
if(s==59){m=m-1}
if(m<0){alert('You lose,click reset')}
document.getElementById('timer').innerHTML =m + ":" + s;
setTimeout(startTimer, 1000);
}
function checkSecond(sec) {
if (sec < 10 && sec >= 0) {sec = "0" + sec}; // add zero in front
of numbers < 10
if (sec < 0) {sec = "59"};
return sec;
}
</script>
【问题讨论】:
-
您所说的“当用户在屏幕上做某事时计时器重新启动”是什么意思?
-
这是一个刽子手游戏,当用户点击一个字母来猜测一个单词时,计时器会重新启动。
-
我猜你是检测到一个字母被击中,然后刷新整个页面?
-
是的,我在游戏中使用了会话,我可以在 js 代码中添加 php 会话吗?
-
我明白了。对此没有超级简单的解决方案。您应该避免重新加载整个页面,以便 javascript 计时器可以继续运行,或者您必须将计时器信息连同被击中的键一起发送到 PHP,以将计时器设置为正确的初始时间。我会选择第一种方法。研究一种通常用于此的称为“AJAX”的技术。
标签: javascript php session timer