8.7.7-0
手机一般默认设置 使用网络提供的时间
这个时间和服务器的时间一定是有误差的
我们还要把这个误差考虑进去
那么, 这个误差怎么算呢
当手机向服务器查询一次当前时间,
会产生一个手机时刻A
服务器会返回一个服务器时间
服务器时间 - 网络从手机到服务器的时长 = 手机时刻B(以服务器为标准)
手机时间误差 = 手机时刻B - 手机时刻A
用脚本引擎启动一个单独的脚本, 每隔一定时间, 去校正一下两个值, 并且用本地存储存起来
每当要获取服务器的时间, 我们就可以读取本地存储, 直接用公式计算出服务器的时间, 而不用去请求服务器
部分内容来自网络
//看你原先的代码 感觉不能实现你要的功能 就自己在你的基础上改了很多东西 ,如果感觉不行 就当我自己学习了<html>
<head>
<title>现在开始倒计时</title>
<style>
*{
font-size:12px
}
</style>
<script>
var TIME = 10//给定的最大时间,可修改
var GUESS_TIME = 5//给定的最大猜数字,可修改
var time = TIME, s
var i, j = 1// 记数
var normal = true//是否是正常流程
var gamestart = false//游戏是否已经开始
// 初始化所猜数字
function init() {
time = TIME
i = Math.round(Math.random() * 10 + 1)
}
// 猜一下
function guess_start() {
var randnum = $('rettime').value
if (gamestart) {
if (randnum &&randnum != '请输入数字1--10之间') {
if (j <= GUESS_TIME) {
if (randnum == i) {
$('result').innerHTML += "<br>恭喜你,你猜对了" + i + "<br>"+ "你是第:" + j + "次,猜对的 "
guess_over()
} else if (randnum >i) {
$('result').innerHTML += "<br>你输入的数字太<font color='red'>大</font>了 "
} else {
$('result').innerHTML += "<br>你输入的数字太<font color='blue'>小</font>了 "
}
j++
} else {
$('result').innerHTML += "<br>很遗憾你已经没有机会了!" + "这个数字是:" + i+ " "
guess_over()
normal = false
}
} else {
$('result').innerHTML += "<br>请输入你猜的数字!"
}
} else {
$('result').innerHTML += "<br>游戏还未开始!请点击'" + $('gamestrat').value + "'"
}
}
// 猜结束
function guess_over(game_failure) {
cl()
j = 0
//重新开始
game_restart()
}
// 游戏开始
function game_start() {
init()
$('rettime').disabled = false
gamestart = true
// 倒计时开始
s = setInterval(retime, 1000)
}
//游戏重新开始重置为初始状态
function game_restart() {
reset()
}
// 倒计时结束
function cl() {
clearInterval(s)
}
// 游戏主要方法
function retime() {
if (time >0) {
$('gamestrat').value = '还剩' + (time <10 ? '0' + time : time) + "秒"
time--
} else {
if (normal)
$('result').innerHTML += "<br>时间到了 "
reset()
cl()
}
}
//重置为初始模式
function reset() {
$('gamestrat').value = '重新开始'
$('rettime').value = '请输入数字1--10之间'
$('rettime').disabled = true
gamestart = false
}
function $(id) {
return document.getElementById(id)
}
</script>
</head>
<body >
<input type="button" id="gamestrat" value="开始游戏" onclick="game_start()">
<input type="text" id="rettime" value="请输入数字1--10之间" disabled="true" onfocus="this.value=''" onkeyup="this.value=this.value.replace(/\D/,'')">
<a href="javascript:void 0" onclick="guess_start()">猜一下</a>
<div id="result"></div>
</body>
</html>
欢迎分享,转载请注明来源:夏雨云
评论列表(0条)