我正在创建一个PPC网站。当计时器计数器设置为0时,代码应自动运行查询。如果用户关闭窗口并再次单击,则在再次完成30秒之前,不会触发查询。
在数据库中设置了URL,以便用户点击一列即可访问。如果将匹配数默认设置为0或1(0),则会显示。当页面运行时,它获取记录。将当前URL和先前URL的两个会话设置为1,并将更新匹配项设置为1。三十秒后,当页面再次加载时,将创建第一个当前URL会话,它与两个会话都匹配。如果两个会话都不相同,则会通过匹配先前的URL会话和登录ID将匹配数更新为2。
创建当前URL和先前URL的会话
$_SESSION['url']=$row['url'];
$_SESSION['previousURL']=$row['url'];
Javascript用于计时器
<script language="JavaScript" type="text/javascript">
function checklength(i) {
'use strict';
if (i < 10) {
i = "0" + i;
}
return i;
}
var minutes, seconds, count, counter, timer;
count = 30; //seconds
counter = setInterval(timer, 1000);
function timer() {
'use strict';
count = count - 1;
minutes = checklength(Math.floor(count / 60));
seconds = checklength(count - minutes * 60);
if (count < 0) {
clearInterval(counter);
return;
}
document.getElementById("countdown").innerHTML = 'Next refresh in ' + minutes + ':' + seconds + ' ';
if (count === 0) {
location.reload();
}
}
</script>
在这种情况下,我得到的实际输出是,如果计时器无法完成并且用户关闭窗口,而不是再次单击该计时器,它将获取先前的URL并将匹配设置为2。
期望的是,更新查询仅应在计时器完成后才触发。