刷新时不复位的时钟
Clock that doesn't reset on refresh
我试图使这个计数计数在加载或刷新时不重置。有人能帮我一下吗?我听说我可以使用本地存储,但我将需要改变这段代码与PHP和MySQL服务器端。如果你有任何资源可以告诉你PHP的版本,你可以发给我或作为答案发帖吗?
var updateTimer = function() {
timer = localStorage.getItem('timer') || 0;
if ( timer === 0 ) {
$("div#timer").html("Timer is unset");
} else {
timer--;
localStorage.setItem('timer', timer);
$("div#timer").html(timer);
}
};
$(function() {
setInterval(updateTimer, 1000);
$("#start").click( function() {
localStorage.setItem('timer', 500);
});
});
function getTimeRemaining(endtime) {
var t = Date.parse(endtime) - Date.parse(new Date());
var seconds = Math.floor((t / 1000) % 60);
var minutes = Math.floor((t / 1000 / 60) % 60);
var hours = Math.floor((t / (1000 * 60 * 60)) % 24);
var days = Math.floor(t / (1000 * 60 * 60 * 24));
return {
'total': t,
'days': days,
'hours': hours,
'minutes': minutes,
'seconds': seconds
};
}
function initializeClock(id, endtime) {
var clock = document.getElementById(id);
var daysSpan = clock.querySelector('.days');
var hoursSpan = clock.querySelector('.hours');
var minutesSpan = clock.querySelector('.minutes');
var secondsSpan = clock.querySelector('.seconds');
function updateClock() {
var t = getTimeRemaining(endtime);
daysSpan.innerHTML = t.days;
hoursSpan.innerHTML = ('0' + t.hours).slice(-2);
minutesSpan.innerHTML = ('0' + t.minutes).slice(-2);
secondsSpan.innerHTML = ('0' + t.seconds).slice(-2);
if (t.total <= 0) {
clearInterval(timeinterval);
}
}
updateClock();
var timeinterval = setInterval(updateClock, 1000);
}
var deadline = new Date(Date.parse(new Date()) + 15 * 24 * 60 * 60 * 1000);
initializeClock('clockdiv', deadline);
谢谢
如果你想完全避免服务器端编码,你可以使用cookie保存值。
在javascript中,这很容易通过文档完成。cookie = "yourValues, expiryDate"。JQuery也有一些很好的函数来处理cookie。您可能想调整您的脚本来计算加载之间的时间或不运行时钟,但这是可选的。
http://www.w3schools.com/js/js_cookies.asp <-这里有一个关于如何使用它们的简单教程。
对于php,您可以使用cookie's来实现相同的效果。
setcookie($timer); // Set timer
$_COOKIE['timer']; // Get timer
你可以开始插入mysql在每次刷新,但使用$_COOKIE显示。Mysql只是为了在刷新页面后跟踪和获得正确的时间。
mysql_query("UPDATE table SET timer = '$timer'"); // Inserting every refresh
当页面加载时要么从form存储cookie中获取要么从mysql表中获取
但是COOKIES将比只使用mysql方法更快(它不会正常工作,因为它需要每秒请求)
相关文章:
- JavaScript时钟问题
- d3用时钟中的两个指针变换原点
- 基于实时时钟
- 为什么我的犀牛书;s的SVG时钟为黑色圆圈
- JavaScript中的足球时钟计数器
- 在同一窗口中添加多个世界时钟
- 世界的时钟并没有滴答作响
- AngularJs 控制器中的实时时钟功能
- javascript/jquery 数字时钟脚本,24 小时格式,带有日期
- 在 JavaScript 时钟中的单个字符之前添加填充 0
- Javascript时钟颜色样式
- Meteor.js中的简单时钟或如何重新加载模板
- 如何使时钟的显示与实时同步
- 为什么我的javascript时钟不工作
- 将javascript时钟的日期偏移2周
- 从不准确的时钟中推导出更准确的时钟
- 用javascript旋转时钟指针
- 尽管我努力了,递归时钟调用仍在滴答作响
- 谷歌分析/Mixpanel/等.确定时钟错误时的事件时间戳
- 刷新时不复位的时钟